2009-11-12 23 views
21

Potrzebuję, aby karty, które zostały zorientowane na dole mojego QTabWidget większe. Będziemy używać ekranu dotykowego, więc domyślne rozmiary są trochę za małe.Qt Zwiększ QTabWidget QTabBar rozmiar

Nie widzę łatwego sposobu, aby to zrobić (obecnie nie widzę dobrego sposobu, aby to zrobić w ogóle.) Jedyne metody odnoszące się do QTabBar, które widzę w QTabWidget, są chronione i nie widzę potrzeby dziedziczenia z klasy innej niż w tym wyraźnym celu).

Pytanie:

Co chciałbym zrobić, to po prostu ustawić QTabBar do pewnej określonej wielkości. czy to możliwe?

Poza tym jedyną rzeczą, o której mogę myśleć jest podklasa QTabWidget, a następnie mogę kontrolować rozmiar QTabBar przez rozszerzanie lub przesłonięcie funkcji tej klasy.

Dzięki.

Odpowiedz

32

Jeśli nie chcesz podklasy rzeczy, można użyć Qt stylesheets szybko ustawić wysokość i szerokość kartach tak:

// tabWidget is a pointer to a QTabWidget 
tabWidget->setStyleSheet("QTabBar::tab { height: 100px; width: 100px; }"); 
// each tab should now be 100x100px 

Zauważ, że arkusz stylów dotyczy QTabBar chociaż jesteśmy wywoływanie setStyleSheet() na QTabWidget.

+0

Polecam przy użyciu arkuszy stylów, jak również. –

+0

działa to jak urok w Linuksie ... ale nie pokazuje żadnego efektu na Macu. Każdy pomysł, dlaczego? – Shachi

5

Jeśli za pomocą Qt Designer można po prostu umieścić QTabBar::tab { height: 100px; width: 100px; } we właściwości arkusza stylów z QTabWidget Objet bezpośrednio