2009-11-12 15 views
21

Je dois agrandir les onglets que j'ai orientés au bas de mon QTabWidget. Nous utiliserons un écran tactile, donc les tailles par défaut sont un peu trop petites.Qt Augmenter la taille QTabBar de QTabWidget

Je ne vois pas de moyen facile de le faire (actuellement, je ne vois pas du tout comment le faire.) Les seules méthodes relatives à QTabBar que je vois dans QTabWidget sont protégées, et je ne vois pas la nécessité d'hériter de la classe autre que pour ce but exprès).

Question:

Ce que je voudrais faire est de simplement mettre à une certaine taille spécifique du QTabBar. Est-ce possible? En dehors de cela, la seule chose à laquelle je peux penser est de sous-classer QTabWidget et puis je peux contrôler la taille de la QTabBar en étendant ou en remplaçant les fonctionnalités de cette classe.

Merci.

Répondre

32

Si vous ne voulez pas sous-classe des choses, vous pouvez utiliser Qt stylesheets pour régler rapidement la hauteur et la largeur de vos onglets comme ceci:

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

Notez que la feuille de style se réfère à QTabBar même si nous sommes appeler setStyleSheet() sur QTabWidget.

+0

Je recommande d'utiliser les feuilles de style aussi bien. –

+0

cela fonctionne comme un charme dans Linux ... mais ne montre aucun effet sur mac. Une idée pourquoi? – Shachi

5

Si votre utilisation de Qt Designer, vous pouvez simplement mettre QTabBar::tab { height: 100px; width: 100px; } dans la propriété stylesheet du QTabWidget directement

obJet