ich will ein QTabWidget "dynamisch" füllen, das würde ich wie folgt machen:
Code: Alles auswählen
#include <QLabel>
#include <QLineEdit>
#include <QGridLayout>
#include <QHash>
#include <QTabWidget>
class fstTestProject : public QMainWindow
{
Q_OBJECT
public:
fstTestProject(QWidget *parent = 0, Qt::WFlags flags = 0);
~fstTestProject();
void fillQHashLists();
private:
Ui::fstTestProjectClass ui;
QLabel *myLabel[12];
QLineEdit *myLineEdit[12];
QGridLayout *myLayout;
QHash<int, QString> optNames;
QHash<int, QString> optValues;
QTabWidget* myTabWidget;
};Code: Alles auswählen
#include "fsttestproject.h"
#include <QFont>
#include <QWidget>
fstTestProject::fstTestProject(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
fillQHashLists();
myTabWidget = new QTabWidget;
int hashSize = optNames.size();
myLayout = new QGridLayout;
for(int m=0; m<hashSize; m++)
{
QWidget* page;
page = new QWidget;
myTabWidget->addTab(page, optNames[m]);
QGridLayout *pageLayout = new QGridLayout;
page->setLayout(pageLayout);
for(int i=0; i<hashSize; i++)
{
myLabel[i] = new QLabel(optNames[i]);
myLineEdit[i] = new QLineEdit(optValues[i]);
}
for(int k=0; k<hashSize; k++)
{
pageLayout->addWidget(myLabel[k], k, 0);
pageLayout->addWidget(myLineEdit[k], k, 1);
}
}
QGridLayout* basicLayout = new QGridLayout;
ui.centralWidget->setLayout(basicLayout);
basicLayout->addWidget(myTabWidget);
}
fstTestProject::~fstTestProject()
{
}
void fstTestProject::fillQHashLists()
{
for(int j=0; j<8; j++)
{
QString name = "Wert ";
QString zahl;
zahl.setNum(j, 10);
name.append(zahl);
optNames[j] = name;
optValues[j] = zahl;
}
}Generell würde ich es so machen wie in "Qt4 Einführung in die Applikationsentwicklung" bei dem Beispiel mit dem ByteConverter, jedoch weiß ich hier nicht wie ich das jeweilige LineEdit ansprechen kann, da es ja zu Beginn noch nicht wirklich existiert?
Hat jemand einen Tip?