Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : QComboBox mit hide/unhide



Mat
17-11-2005, 21:49
Ich habe eine ComboBox mit Einträgen.
Je nach Eintrag der gewählt wird soll sich eine section der GUI neu aufbauen.
Also paar widgets sollen verschwinden und einige neue sollen entstehen.
Ich schaffe das so nicht:



connect(cBox, SIGNAL(activated(int)), this, SLOT(build_section(int)));
...
void Page_traffic::build_appl_section(int section)
{
switch(section)
{
case(0):
{
ent_p = new QLineEdit( frame, "ent_p" );

ent_p->setGeometry( QRect( 160, 140, 70, 20 ) );
ent_p->show();

}
case(1):
{
ent_p->hide();
}
case(2):
{

}
}
}


wie ist es üblich sowas zu machen? Hat jemand Ideen?
Benutze QT/C++
Danke

anda_skoa
17-11-2005, 22:34
Wenn die Widgets exklusiv sind, vielleicht QWidgetStack?

Ciao,
_

Mat
17-11-2005, 23:11
:cool:
hmm danke aber.....was heißt exclusiver widgets....
und ein widget stack......hmm dazu muss ichwohl die doku wälzen:rolleyes:

Kirsche
18-11-2005, 10:55
Hallo Mat,

im Prinzip müsste es mit show und hide funktionieren.
Allerdings erstellst du dein Widget (hier QLineEdit) nur in case 0 mit ent_p = new QLineEdit( frame, "ent_p" ); In allen anderen Fällen greifst du evt. auf etwas zu, was es gar nicht gibt (es sei denn, case 0 wird immer durchgeführt).

Ich glaube, du musst dein Fenster (bzw. deine GUI) komplett aufbauen und dann alle Fenster, die sich darauf befinden, ausblenden. Mit Hilfe deiner Combobox entscheidest du dann, welche Fenster ein- und welche ausgeblendet werden sollen.

Was ganz anderes: du solltest nicht unbedingt "setGeometry" verwenden, sondern lieber Layouts. Sonst kommst du in Teufels Küche, wenn die Bildschirmauflösung geändert wird. Ging mir jedenfalls so.

Schöne Grüße,

anda_skoa
18-11-2005, 18:29
Mit exklusiv meinte ich, daß jede Einstellung ihre eigenen Widgets hat, also nicht zwei Einstellungen gemeinsame.

Dann kannst du für jede Einstellung ein Gesamtwidget machen und die entsprechende Seite im Stack anzeigen lassen.

Ciao,
_