Hallo Hulk2442,
Code: Alles auswählen
QWidget *tab2main = new QWidget(this);
QVBoxLayout *tab2VLayout = new QVBoxLayout(tab2main);
QHeaderView *headJobList = new QHeaderView(Qt::Horizontal,tab2main);
QTreeView *treeJobList = new QTreeView(tab2main);
QWidget *tab2reihe = new QWidget(tab2main);
QHBoxLayout *tab2HLayout = new QHBoxLayout(tab2reihe);
QPushButton *tasR2_0 = new QPushButton("Neuer Job",tab2reihe);
ich habe versucht, die Struktur mit den Einrückungen klar zu machen. Im Reiter, dessen Inhalt im QWidget tab2main gesammelt wird, gibt es eine vertikale Box (tab2VLayout ), in der zuerst eine Tabelle mit Header liegt und in der darunter eine horizontale Box (tab2HLayout) liegt, die eine Taste beinhaltet. Als Parent wollen die UI-Elemente ja ein QWidget angeben, weswegen ich bspw. bei der horizontale Box nicht einfach die übergeordnete vertikale Box als Parent angeben kann. Daher habe ich jetzt noch das Hilfswidget tab2reihe angelegt... Zuerst werden also alle UI-Elemente angelegt, und anschließend einander zugewiesen:
Code: Alles auswählen
treeJobList->setHeader(headJobList);
tab2HLayout->addWidget(tasR2_0,0,Qt::AlignLeft);
tab2reihe->setLayout(tab2HLayout);
tab2VLayout->addWidget(treeJobList);
tab2VLayout->addWidget(tab2reihe);
tab2main->setLayout(tab2VLayout);
Also dem TreeView der Header, der horizontalen Box die Taste, anschließend dem "Hilfswidget" tab2Reihe die horizontale Box. Nun noch der vertikalen Box das Treeview und das Hilfswidget tab2Reihe und zuletzt dem Hauptwidget tab2main die vertikale Box, in der sich mittlerweile alle Elemente des Reiters befinden.
Ich wollte nur wissen, ob Du bei derselben Aufgabenstellung vergleichbaren Code produzieren würdest, oder ob Du die Aufgabe ganz anders angehen würdest.
Das mit der show-Funktion ist mir eben auch aufgefallen (hab ich bloß noch einmal verbalisiert
).
Mein Schwerpunkt liegt allerdings aber nach wie vor im Verstehen des ganzen "Deletens" des UIs. Da obiger Code ja im Konstruktor vom mainwindow stattfindet, kann ich ja in einem Destruktor nicht mehr direkt auf bspw. tab2main zugreifen, d.h. selbst wenn ich selbst alles selbst deleten möchte, müßte ich eigentlich jedes UI-Element als Membervariable deklarieren. Das hatte ich eben mal mit dem tab2main gemacht und dann eben im Desktruktor deleted. Und da das Programm beim Beenden nicht abgestürzt ist, wird wohl das Deleten erfolgreich gewesen sein, d.h. Qt hat es nicht selbst gelöscht...
Und hier wollte ich nun auch wissen, wie das deleten bei Euch aussieht (wenn ihr es selbst macht). Deklariert ihr wirklich alle UI-Elemente als Membervariablen? Verteilt ihr die UI-Elemente in Klassen? Erzeugt ihr eure selbst geschriebenen Klassen gar nicht im mainWindow? (so dass ihr den Destruktor nicht selbst schreiben müßt) Allgemein möchte ich einfach gern wissen, wie ein "korrektes" Projekt mit einigen UI-Elemente und einer eigenen Klasse bei Euch so aussieht (eben das Anlegen und eben auch das Löschen), oder wo ich mal ein diesbezügliches Beispiel finde - Grundlagen halt
dd0815