2009-11-12 10 views
21

Ho bisogno di ingrandire le schede che ho orientato nella parte inferiore del mio QTabWidget. Useremo un touch-screen, quindi le dimensioni predefinite sono un po 'troppo piccole.Qt Aumenta QTabWidget QTabBar size

Non vedo un modo semplice per farlo (attualmente non vedo alcun modo valido nemmeno per farlo. Gli unici metodi relativi a QTabBar che vedo in QTabWidget sono protetti, e non vedo la necessità di ereditare dalla classe diversa da quella per questo scopo espresso).

Domanda:

Quello che mi piacerebbe fare è semplicemente impostare il QTabBar ad una certa dimensione specifica. È possibile?

Oltre a ciò, l'unica cosa che posso pensare è sottoclasse QTabWidget e quindi posso controllare la dimensione della QTabBar estendendo o sovrascrivendo le caratteristiche di questa classe.

Grazie.

risposta

32

Se non si desidera sottoclasse roba, è possibile utilizzare Qt stylesheets per impostare rapidamente l'altezza e la larghezza delle schede in questo modo:

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

Si noti che il foglio di stile si riferisce a QTabBar anche se siamo chiamata setStyleSheet() su QTabWidget.

+0

mi consiglia di utilizzare i fogli di stile pure. –

+0

funziona come un fascino in linux ... ma non mostra alcun effetto su mac. Qualche idea del perché? – Shachi

5

Se la vostra utilizzando Qt Designer si può semplicemente mettere QTabBar::tab { height: 100px; width: 100px; } nella proprietà foglio di stile del QTabWidget Objet direttamente