Frage

Ich habe ein Dialog, der eine Qt TabWidget mit einer Reihe von Registerkarten hinzugefügt.

Ich möchte eine der Registerkarten verstecken.

_mytab->hide() 

funktioniert nicht. Ich will nicht nur auf die Registerkarte löschen und alle Widgets aus der .ui Datei, weil anderer Code auf dem Widgets innerhalb der Registerkarte beruht. Allerdings wäre es in Ordnung sein auf den Registerkarte Code zu generieren, aber irgendwie nicht insertTab in der generierten uic_mydialog.cpp ::. Einstellen der verborgene Eigenschaft in der ui-Datei funktioniert auch nicht.

Ich bin mit Qt 3.3

War es hilfreich?

Lösung

Ich würde verwenden QTabDialog :: removePage (QWidget * pTabPage), die pTabPage nicht löschen, das ist das, was Sie wollen.

_myTabDlg->removePage(_mytab);

Ich benutze es und es funktioniert gut!

Andere Tipps

Ich hatte das gleiche Problem aufgetreten. Ich bin mit dem folgenden Ansatz.

Hier sind die Daten.

  

genTab ist der Name meines QTabWidget

     

TABX ist der Name der Registerkarte, die ich entfernen möchten.

(Beachten Sie, dass diese die zweite Lasche in der Tab Widget ist. Daher wird unter Verwendung von i "1" werden, da der Index auf dieses Register verweisen)

Der Code zu entfernen und fügen Sie ist als unten.

ui.genTab->removeTab(1); // removes the tab at the index 1 which is the second tab from left


ui.genTab->insertTab(1, ui.tabX, "<Name of TabX>"); // The tab is added back.

Hier ist zu beachten, dass es einfach ist, dies zu tun, wenn Sie die Registerkarte haben statisch in der Entwurfszeit hinzugefügt. Weil wir einen Objektnamen mit der Registerkarte zugeordnet haben und daher können wir darauf verweisen verwenden, ui.tabX. Von dem, was Sie sagen, ist die Lasche in Ihrem Fall tatsächlich statisch in der Entwurfszeit hinzugefügt.

Wenn Sie jedoch die Registerkarten dynamisch hinzufügen, dann wahrscheinlich werden Sie die Registerkarten in einer Liste halten müssen und dann eine andere Liste für deletedTabs haben.

Aber die erste Lösung wird höchstwahrscheinlich für Sie arbeiten. Hoffe, das hilft.

-Arjun

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