Frage

In meiner QT-Anwendung verwende ich eine QTabWidget für die Basis-Navigation. Dieser QTabWidget ich Setup im ui. In einigen der Registerkarten des QTabWidget Ich brauche QStackedWidget müssen „Drill-Down in der Ansicht“ zu können.

habe ich versucht, auch die QStackedWidget innerhalb des ui Hinzufügen aber es fügt automatisch eine Seite auf den Stapel. Ich möchte stattdessen die Seiten für die QStackedWidget in Code hinzuzufügen. Wenn ich in dem Code Versuchen Sie das stackedWidget tun bereits eine Standard-Seite hat, so mywidget wird der zweite in dem Stapel sein.

MyWidget *myWidget = new MyWidget(ui.stackedWidget);
ui.stackedWidget->addWidget(myWidget);

Was ist der beste und einfachste Weg, eine QStackedWidget innerhalb QTabWidget Registerkarte Setup?

War es hilfreich?

Lösung

Wie wäre:

QTabWidget *myTabWidget = new QTabWidget(this);
QStackedWidget *myStackedWidget = new QStackedWidget(myTabWidget);

myTabWidget->addTab(myStackedWidget, "Stacked Widget");

Sie können auch alle vorhandenen Stapel Seiten in Qt-Designer / Schöpfer entfernen. Einfach mit der rechten Maustaste auf das Widget gestapelt und entfernen Sie alle vorhandenen Seiten. Dann können Sie die benötigten Seiten im Code addWidget() hinzuzufügen.

Andere Tipps

Ich würde sagen - schaffen es in ui, so wie du tun (auf diese Weise ist es einfacher, Layout / Position, fügen andere Widgets auf der Registerkarte später, usw.), sondern einfach entfernen Sie alle vorhandenen Seiten (von Designer hinzugefügt) aus Code und fügen Sie Ihre neue.

Eigentlich Designer von Qt 4.6 ermöglicht Widget alle Seiten gestapelt löschen - Sie müssen nach rechts klicken, gehen Sie auf das Untermenü „Seite X von Y“, und Löschen wählen. Wiederholen, bis alle Seiten sind weg:)

Vielleicht hat dies den Designer hinzugefügt erst vor kurzem, so dass Sie noch brauchen sie aus dem Code zu entfernen, wenn Sie eine frühere Version von Qt haben.

Sachen innerhalb ui halten Sprechen dagegen in Code zu halten i für „so viel in UI-Datei wie möglich“ stimmen würde:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top