[gelöst] Nach Einsatz von Layoutmanagern

Alles rund um die Programmierung mit Qt
Antworten
bw1faeh0
Beiträge: 94
Registriert: 10. Oktober 2007 14:48
Wohnort: Braunschweig

[gelöst] Nach Einsatz von Layoutmanagern

Beitrag von bw1faeh0 »

Hallo (ich schon wieder ;) ),

diesmal geht es um die Layoutmanager.

ich möchte mein Hauptfenster ungefähr so gestalten:


Gerätestatus: Gerät nicht verbunden
Filterkonfiguration: Kein Filter eingestellt
_____ _____ _____
|Tab1 ||Tab2 ||Tab3 |_____________________

dazu erzeuge ich mir verschiedene Label und ein TabWidget. Wenn ich das TabWidget ohne Layout-Manager in das Hauptfenster einbinde, wird es korrekt dargestellt.

Wennich aber die Label mit rein nehmen möchte und mit einem Layoutmanager verbinde bleibt mein Fenster leer.

So soll der Layoutmanager strukturiert sein:
QVBoxLayout über alles. Oben ein QGridlayout mit den Labels rein, unten nur das TabWidget:

Code: Alles auswählen

    staticLabel_Device_Status = new QLabel("Gerätestauts: ");
    staticLabel_Filter_Status = new QLabel("Filterkonfiguration: ");
    varLabel_Device_Status = new QLabel("Gerät nicht verbunden");
    varLabel_Filter_Status = new QLabel("Kein Filter eingestellt");

    upperLayout = new QGridLayout();
    upperLayout->addWidget(staticLabel_Device_Status, 1, 1);
    upperLayout->addWidget(varLabel_Device_Status, 1, 2);
    upperLayout->addWidget(staticLabel_Filter_Status, 2, 1);
    upperLayout->addWidget(varLabel_Filter_Status, 2, 2);
    
	createTabWidget();
	createStatusBar();

    mainLayout = new QVBoxLayout();
    mainLayout->addLayout(upperLayout);
    mainLayout->addWidget(tabWidget);
    setLayout(mainLayout);

Wie das Ergbenis aussieht kann man im Anhang erkennen.
Leider sieht man weder Label noch Tab.

hat jemand eine Idee??
Die komplette Datei befindet sich auch nochmal im Anhang.

mfg

Christian
Dateianhänge
Screenshot der Anwendung mit Layoutmanager
Screenshot der Anwendung mit Layoutmanager
app.JPG (5.14 KiB) 2030 mal betrachtet
fmbmonitor.cpp
(8.82 KiB) 127-mal heruntergeladen
fmbmonitor.h
(2.89 KiB) 124-mal heruntergeladen
Zuletzt geändert von bw1faeh0 am 18. Oktober 2007 09:32, insgesamt 1-mal geändert.
bw1faeh0
Beiträge: 94
Registriert: 10. Oktober 2007 14:48
Wohnort: Braunschweig

Beitrag von bw1faeh0 »

Also ich konnte das Problem jetzt schon einengen:

Wenn ich das letzte Objekt (tabWidget) dem Layout-Konstrukt hinzufüge, dann passiert es, dass alles verschwindet.
Füge ich das tabWidget nicht dem Layout hinzu, dann bleiben auch alle Label sichtbar.
Ich habe das gleiche auch mit einem Button ausprobiert. es ist das gleiche Ergebnis: Füge ich dem meinLayout ein QPushButton hinzu, dann verschwindet alles im Fenster, und es sieht so leer aus, wie im Screenshot...
dust2
Beiträge: 22
Registriert: 7. Juni 2007 16:16

MainWidget verwenden

Beitrag von dust2 »

Also beim automatischen Layouten sollte man die Layouts immer auf einem Widget platzieren(im Konstruktor von Deinem Mainlayout), nicht auf einem Window!
Also so:

Code: Alles auswählen

// Mainwidget
	QWidget *p_MainWidget=new QWidget();

	staticLabel_Device_Status = new QLabel("Gerätestauts: "); 
    staticLabel_Filter_Status = new QLabel("Filterkonfiguration: "); 
    varLabel_Device_Status = new QLabel("Gerät nicht verbunden"); 
    varLabel_Filter_Status = new QLabel("Kein Filter eingestellt"); 

    upperLayout = new QGridLayout(); 
    upperLayout->addWidget(staticLabel_Device_Status, 1, 1); 
    upperLayout->addWidget(varLabel_Device_Status, 1, 2); 
    upperLayout->addWidget(staticLabel_Filter_Status, 2, 1); 
    upperLayout->addWidget(varLabel_Filter_Status, 2, 2); 
    
   //createTabWidget();
	QWidget *Tab1    = new QWidget(); // erste Tab-Page 
	QWidget *Tab2    = new QWidget(); // erste Tab-Page 
    tabWidget=new QTabWidget();
    tabWidget->addTab(Tab1,"TAB1");
	tabWidget->addTab(Tab2,"TAB2");


    mainLayout = new QVBoxLayout(p_MainWidget);  //Mainlayout auf MainWidget
    mainLayout->addLayout(upperLayout); 
    mainLayout->addWidget(tabWidget); 
   

	setCentralWidget( p_MainWidget);
Daniel
bw1faeh0
Beiträge: 94
Registriert: 10. Oktober 2007 14:48
Wohnort: Braunschweig

Beitrag von bw1faeh0 »

Ok, danke. habe es hinbekommen!
Antworten