Seite 1 von 1

stylesheet für QTabWidget

Verfasst: 22. Januar 2014 08:05
von Ozzy
Hi,

ich habe zwei kurze Fragen zum Stylesheet für QTabWidgets. Und zwar möchte ich eine kleine Lücke zwischen den einzelnen Tabs, was ich über "margin-right: 5px;" bzw. "margin-left: 5px;" erreicht habe. Allerings hätte ich gerne einen Rahmen umlaufend um den aktiven Tab. Das habe ich so gelöst:
QTabWidget::pane {
border: 1px solid 000000;
margin-top:-1px;
}
Mit dem margin-top verhindere ich, dass die Linie unter den Tabs gezeichnet wird. Allerdings wird so in den "Lücken" zwischen den tabs nun auch nichts mehr gezeichnet, da ist diese Linie also unterbrochen. Habt Ihr da eine Idee für mich?

Und zweitens: ist es möglich einen Umbruch im Tabnamen zu erreichen? Normalerweise (also z.B. bei Buttons) reicht ja ein "\n" im Text; bei den Buttons jedoch leider nicht... Habt Ihr da eine Idee für mich?

Vielen Dank im Voraus
Ozzy

Re: stylesheet für QTabWidget

Verfasst: 22. Januar 2014 08:50
von sigvdr
1. Zeilenumbruch mit "\n" geht in den Tabnamen. (getestet mit Qt 4. 8)
2. Eine Hervorhebung eines aktiven Tabs habe ich mal so gemacht, kommst du mit diesem Beispiel weiter?

Code: Alles auswählen

QTabBar::tab:selected {
   padding: 5px;
   border: 2px solid palette(dark);
   border-top: 5px solid palette(highlight);
   border-bottom: 0px;
   border-top-left-radius: 5px;
   border-top-right-radius: 5px;
}
Gruß Sig

Re: stylesheet für QTabWidget

Verfasst: 22. Januar 2014 10:28
von Ozzy
Hi,

das hilft mir leider nicht weiter. Ich habe mittlerweile durch Zufall festgestellt, dass es wohl daran liegt, dass der Frame eine Hintergrundfarbe hat. Hier mal wie es aussieht, wenn kein Hintergrund da ist:
oh.png
oh.png (3.68 KiB) 3793 mal betrachtet
und hier mal mit Hintergrund. Wie man sieht, fehlen hier die Striche zwischen den Tabs...
mh.png
mh.png (4.65 KiB) 3793 mal betrachtet
Und man sieht auch, dass er den Umbruch im Tab nicht wirklich ernst nimmt ;-)

Habt Ihr hierzu noch eine Idee?

Re: stylesheet für QTabWidget

Verfasst: 22. Januar 2014 10:36
von sigvdr
Wo setzt du den Tabnamen? Bei mir bringt diese Anweisung eine 2-Zeilige Anzeige

Code: Alles auswählen

tabWidget->setTabText(0,"Test\nText");
Gruß Sig