Seite 1 von 1

[gelöst] Extension klappt nicht zu

Verfasst: 16. Juni 2011 08:18
von huckleberry
Hallo Foristen,

also ich habe das Beispiel bei Qt Examples benutzt. Es geht um Extensions, da wo man auf den Button "More" klickt und es klappt im selbigen Dialogfenster mehr Widgets auf.

Also wenn man im Beispiel klickt, wird die Dialogbox erweitert. Klickt man wieder, wird diese wieder auf ihren ursprüngliche Größe reduziert.

Nun zu meinem Code:

Code: Alles auswählen

// Auszug....

// Extension 
	extension = new QWidget;
    extensionLayout = new QVBoxLayout;
    extensionLayout->setMargin(0);
    extensionLayout->addWidget(lblInfo);
    extensionLayout->addWidget(leInfo);
    extension->setLayout(extensionLayout);

	// MainLayout
	mLO = new QGridLayout;
	mLO->addWidget(lblID, 0, 0);
	mLO->addWidget(leID, 0, 1);
	// usw....

    mainLayout = new QGridLayout;
	mainLayout->addLayout(mLO, 0, 0);
	mainLayout->addWidget(buttonBox, 0, 1);
	mainLayout->addWidget(extension, 1, 0, 1, 2);
    mainLayout->setRowStretch(2, 1);

    setLayout(mainLayout);

    setWindowTitle(tr("MyWindow"));

	extension->hide();

	// Connect
	connect(btnMore,	SIGNAL(toggled(bool)),	extension,	SLOT(setVisible(bool)));
Ich klicke, Dialog wird größer, es kommen meine Widgets hinzu, bisher super.
Ich klicke wieder, neue Widgest verschwinden, jedoch Fenster bleibt groß. Ist jetzt kein Beinbruch, würde aber wissen wieso, um Qt besser zu beherrschen.

Erleuchtet mich. Vielen Dank.

Mfg Huck

Verfasst: 27. Juni 2011 16:14
von huckleberry
Ich hatte das Gefühl, es hat etwas mit dem folgender Zeile zu tun:

Code: Alles auswählen

 mainLayout->setRowStretch(2, 1); 
Habe alles durchpermutiert, vergeblich.

Verfasst: 30. Juni 2011 14:22
von huckleberry
Habe QVBoxLayout mit QGridLayout ersetzt unjd setMargin(0) auskommentiert. Nun gehts.