2016-06-02 17 views
1

Ich arbeite gerade mit einem QTabWidget, das gerade ein QWidget mit verschiedenen Elementen (Labels, Buttons, ...) anzeigt. Arbeiten mit Ubuntu und Qt5.5.QTabWidget oder QTabBar zeigt das gleiche QWidget in verschiedenen Tabs mit C++ an

QTabWidget *tw; 
QString title = "1"; 
ui->tw->addTab(&tab, title); // tab is my QWidget 

Ich möchte das gleiche QWidget in mehr als einer Registerkarte mit unterschiedlichen Werten zeigen. Gibt es ein "sauberes" dafür?

Micha

Antwort

1

Nein, ist es nicht eine "saubere" Art und Weise, das zu tun. Die QTabWidget verwendet einen Stapel, so dass Sie für jede Registerkarte separate Widgets haben müssen. Es heißt in der documentation:

Jede Registerkarte ist mit einem anderen Widget (eine Seite genannt) verknüpft.

Die einzige Möglichkeit besteht darin, mehrere Instanzen von QWidget zu instanziieren und sie zu Ihrer QTabWidget hinzuzufügen.

QTabWidget *tw; 
QString title = "1"; 
QString title2 = "2"; 
ui->tw->addTab(&tab, title); // tab is your QWidget 
ui->tw->addTab(&tab2, title2); // tab2 is another QWidget 

Wenn Sie eine QTabBar verwenden möchten, nur in ihm setzen Sie Ihre Widget (ein QVBoxLayout zum Beispiel verwendet wird). Dann verbinden Sie sich mit dem currentChanged Signal der QTabBar, um Ihr Widget nach Ihren Bedürfnissen zu ändern.

+0

Danke für Ihre schnelle Antwort. Schade, dass ich das gleiche Widget nicht einfach mehrmals einfügen kann. Hast du irgendwelche Erfahrungen mit einer QTabBar anstatt mit QTabWidget? –

+0

Ich habe gerade meine Antwort bearbeitet, um das zu beantworten :) – IAmInPLS

+0

Hast du ein Beispiel, das du teilen könntest? Ich bin mir nicht ganz sicher, wie man einfach mit der QTabBar arbeitet ..:/ –