QTabWidget mehrzeilig erstellen
-
christian.h
- Beiträge: 21
- Registriert: 9. Januar 2007 13:35
- Wohnort: Ludwigshafen
- Kontaktdaten:
QTabWidget mehrzeilig erstellen
Hallo alle zusammen,
ist es möglich ein QTabWidget mit mehreren Tab-Zeilen zu erstellen??
Die Anzahl von Tabs, die ich im TabWidget unterbringen will ist einfach zu groß, um alles sauber in einer Zeile (ohne Pfeile zur Navigation) anzeigen zu können. Es wäre super, wenn es etwas gäbe, um die Tabs auf 2 Zeilen verteilen zu können.
Alternative Vorschläge nehme ich auch sehr gerne zur Kenntnis.
edit: ich benutze die Version 3.3.6 von Qt
Danke
MfG Christian
ist es möglich ein QTabWidget mit mehreren Tab-Zeilen zu erstellen??
Die Anzahl von Tabs, die ich im TabWidget unterbringen will ist einfach zu groß, um alles sauber in einer Zeile (ohne Pfeile zur Navigation) anzeigen zu können. Es wäre super, wenn es etwas gäbe, um die Tabs auf 2 Zeilen verteilen zu können.
Alternative Vorschläge nehme ich auch sehr gerne zur Kenntnis.
edit: ich benutze die Version 3.3.6 von Qt
Danke
MfG Christian
Etwa diese kranken mehrzeiligen Tabreiter, wie man sie von Windows kennt
nternetoptionen), die auch noch ihre Position ändern, wenn man einen anklickt? Das ist doch grausam. Da würde ich ehr über ein QStackedWidget nachdenken und das über ein QList- oder QTreeWidget ansteuern.
Ok, bei Qt3 heißen die Beteiligten etwas anders, funktioniert aber genauso
Ok, bei Qt3 heißen die Beteiligten etwas anders, funktioniert aber genauso
-
christian.h
- Beiträge: 21
- Registriert: 9. Januar 2007 13:35
- Wohnort: Ludwigshafen
- Kontaktdaten:
Da stimme ich dir auf jeden Fall zu. Dass sich die Tab-Reiter dann verschieben werden daran hatte ich noch gar nicht gedacht!macman hat geschrieben:Etwa diese kranken mehrzeiligen Tabreiter, wie man sie von Windows kenntnternetoptionen), die auch noch ihre Position ändern, wenn man einen anklickt? Das ist doch grausam.
Da es nur eine Ebene gibt, ist ein TreeWidget schonmal außer vor, da man dann gleich ein ListWidget nehmen könnte.macman hat geschrieben:Da würde ich ehr über ein QStackedWidget nachdenken und das über ein QList- oder QTreeWidget ansteuern.
Ok, bei Qt3 heißen die Beteiligten etwas anders, funktioniert aber genauso
Nen TabWidget finde ich für meine Zwecke auf jeden fall optisch am ansprechensten. Aber ich werde mir mal meine Gedanken über ein ListWidget machen.
ps. Es wäre trotzdem noch cool, falls jemand weiß, wie ich in Qt3 ein QTabWidget mit mehreren Zeien bestücken kann.
Ich will mir alle Möglichkeiten noch offen halten.
MfG Christian
Ich dachte an ein QWidgetStack, das ist ein TabWidget ohne Tabschristian.h hat geschrieben:Nen TabWidget finde ich für meine Zwecke auf jeden fall optisch am ansprechensten. Aber ich werde mir mal meine Gedanken über ein ListWidget machen.
-
christian.h
- Beiträge: 21
- Registriert: 9. Januar 2007 13:35
- Wohnort: Ludwigshafen
- Kontaktdaten:
Kurze Erläuterung, bevor wir uns in die falsche Richtung bewegen:macman hat geschrieben:Ich dachte an ein QWidgetStack, das ist ein TabWidget ohne Tabschristian.h hat geschrieben:Nen TabWidget finde ich für meine Zwecke auf jeden fall optisch am ansprechensten. Aber ich werde mir mal meine Gedanken über ein ListWidget machen.In dem ListWidget stehen dann die Namen der Tabs und bei Klick darauf holst Du das entsprechende Tab nach vorne. So kannst Du einige Dutzend Tabs unterbringen und es ist trotzdem noch übersichtlich.
Da ich die GUI sowieso dynamisch generieren lasse spielt es zunächst keine Rolle, wie gut man Tabs (ohne Reiter) auf der Benutzeroberfläche unterbringen kann. Im Code kann ich zur Not auch einfache Frames verwenden (um die Einteilung sauber zu halten), die ich dann über das ListWidget sichtbar mache!
Trotzdem Danke für die Erläuterung.
Hatte aber schon gewusst, wie du dir das in etwa vorstellst!
Für meine Zwecke wäre es optimal die Auswahl der Punkte oben zu haben.
Und ich denke, dass dies bei einem ListWidget nicht sehr gut umzusetzen ist.
Oder gehe ich hier falsch in der Annahme?
Ok, alle Klarheiten beseitigtchristian.h hat geschrieben:Hatte aber schon gewusst, wie du dir das in etwa vorstellst!
Mit einer ItemView, aber ob das mit Qt3 geht kann ich nicht sagen, schon zu lange her. Auf dem Mac habe ich sowas schon gesehen, konnte man dann horizontal scrollen, aber vom Prinzip her nichts anderes, als das was mit Text jetzt schon möglich. Ich bleibe dabei, wenn man viel unterbringen will, kommt man um eine seitliche Auswahl nicht rum. Ist IMHO die einzige Möglichkeit möglichst viele Punkte gleichzeitig sichtbar zu haben.christian.h hat geschrieben:Für meine Zwecke wäre es optimal die Auswahl der Punkte oben zu haben.
Und ich denke, dass dies bei einem ListWidget nicht sehr gut umzusetzen ist.
-
christian.h
- Beiträge: 21
- Registriert: 9. Januar 2007 13:35
- Wohnort: Ludwigshafen
- Kontaktdaten:
Zunächst mal Danke für deine Ideen. Ich werde mich informieren... aber auf den ersten Blick spuckt mir google leider nicht wirklich viel über den "ItemView" aus. Alles was ich fand bezog sich auf die 4er-Version.macman hat geschrieben:Mit einer ItemView, aber ob das mit Qt3 geht kann ich nicht sagen, schon zu lange her. Auf dem Mac habe ich sowas schon gesehen, konnte man dann horizontal scrollen, aber vom Prinzip her nichts anderes, als das was mit Text jetzt schon möglich. Ich bleibe dabei, wenn man viel unterbringen will, kommt man um eine seitliche Auswahl nicht rum. Ist IMHO die einzige Möglichkeit möglichst viele Punkte gleichzeitig sichtbar zu haben.
Zur Zeit sollen ca 14 Tasks untergebracht werden. Liegt wohl ziemlich an der Schmerzengrenze von einem Tab-Widget. Es kann auch passieren, dass in Zukunft noch der ein oder andere Task hinzukommt, weswegen ich immer mehr zum ListWidget tendiere.
Ein mehrzeiliges TabWidget könnte ich auch gebrauchen. Das Ding mit den ScrollButtons ist auch nicht optimal. Bei meinem Projekt können theoretisch unendlich viele Seiten/Tabs geöffnet werden, was dann auch 'nem Mac per default einen x" Monitor voraussetzt.
Ich sach mal gute Programmierweerkzeuge bieten an die TabBar am Fensterende umzubrechen, siehe bspw. Borland CBuilder oder sein Nachfahre...
Gruß
Ich sach mal gute Programmierweerkzeuge bieten an die TabBar am Fensterende umzubrechen, siehe bspw. Borland CBuilder oder sein Nachfahre...
Gruß
Au weia, von der Usability gibt es nichts Schlimmeres als mehrzeilige TabBars. Mach links ein TreeWidget und rechts ein StackedWidget, dann hast Du alle Möglichkeiten und bist durch nichts begrenzt.s-valve hat geschrieben:Ich sach mal gute Programmierweerkzeuge bieten an die TabBar am Fensterende umzubrechen, siehe bspw. Borland CBuilder oder sein Nachfahre...
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Liste + Tab?
Dem will ich nicht grundsätzlich widersprechen.
Hm, also in mir reift die Vorstellung ein ListWidget mit dem TabWidget zu verheiraten. Gibt es denn eine Möglichkeit Slots und Signals beider so zu zsammen zu führen, dass wenn ich auf einen Listeneintrag klicke der entsprechende Tab ausgewählt und angezeigt wird und anderesrum, wenn ich einen Tab anklicke der passende Listeneintrag markiert wird?
Mir schwebt im ersten Schritt vor, dass die jeweiligen Indzies gleich sind.
Gruß
EDIT:
Habs mal so gelöst:Für Indexverändernde Zugriffe, wie bspw. löschen eines Tabs + des zugehörigen Listeneintrags, müssen dann aber die Signale blockiert werden:Sortieren der Liste wäre bei mir jetzt so ganz schlecht, da der Bezug rein über die Indizes hergestellt ist, aber noch brauche/will ich das nicht.
Gruß
Hm, also in mir reift die Vorstellung ein ListWidget mit dem TabWidget zu verheiraten. Gibt es denn eine Möglichkeit Slots und Signals beider so zu zsammen zu führen, dass wenn ich auf einen Listeneintrag klicke der entsprechende Tab ausgewählt und angezeigt wird und anderesrum, wenn ich einen Tab anklicke der passende Listeneintrag markiert wird?
Mir schwebt im ersten Schritt vor, dass die jeweiligen Indzies gleich sind.
Gruß
EDIT:
Habs mal so gelöst:
Code: Alles auswählen
//connect FileList1 and TabCtrl1
connect(TabCtrl1, SIGNAL(currentChanged(int)), this, SLOT(setFileListRow(int)));
connect(FileList1, SIGNAL(currentRowChanged(int)), TabCtrl1, SLOT(setCurrentIndex(int)));
void PageCtrl::setFileListRow(int i)
{ //private set list row slot
FileList1->setCurrentRow(i);
}Code: Alles auswählen
FileList1->blockSignals(true);
TabCtrl1->blockSignals(true);
FileList1->takeItem(TabCtrl1->currentIndex());
delete TabCtrl1->currentWidget();
FileList1->blockSignals(false);
TabCtrl1->blockSignals(false); Gruß
Du kannst jedem ListWidgetItem einen Type mitgeben, in dem dann die Nummer des Tab stehen würde. Dann hättest Du kein Sortierproblem und könntest auch ein TreeWidget nehmen, um es baumartig darzustellen. Allerdings benötigst Du dann zwei Methoden dazwischen, die die Kommunikation übernehmen. Direkt verbinden geht dann nicht mehr.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.