2010-11-09 8 views
0

Je souhaite affecter un widget (volet) uniquement si le premier onglet de la barre d'onglets est sélectionné.Modification d'un style de contrôle avec dépendance dans un autre contrôle

J'ai essayé quelque chose comme ça dans ma feuille de style:

QTabBar::tab:first:selected 

{ 

QTabWidget::pane:border-top-left-radius: 0px; 

} 

il ne fonctionne pas. pouvez-vous me proposer une alternative?

+0

Avez-vous absolument besoin d'utiliser uniquement les feuilles QStyles? ou êtes-vous OK avec le code? – Live

+0

Je suis d'accord avec ça. – sara

Répondre

0

Vous pouvez définir une propriété dynamique personnalisée sur le widget pour le style lorsque la sélection d'onglet change. Lors de la création, définissez la propriété sur false:

tabWidget->setProperty("firstSelected", false); 

Dans une fente réagissant à l'interrupteur onglet:

const bool firstSelected = ... 
tabWidget->setProperty("firstSelected", firstSelected); 

Dans la feuille de style:

QTabWidget[firstSelected="true"] { ... } 

QTabWidget[firstSelected="false"] { ... } 

Si cela ne fonctionne pas , vous pouvez changer la feuille de style manuellement dans la fente en écoutant les changements d'onglet.