2017-08-08 3 views
1

Comment puis-je définir plusieurs styles pour un type de contrôle dans une feuille de style? Donc, plus tard, le développeur peut choisir, quel type de contrôle de style devrait ressembler.Définir plusieurs styles pour le contrôle par bouton-poussoir Qt Widgets feuilles de style

Par exemple, je dois définir deux styles pour QPushButton: pour le bouton normal (à gauche) et le bouton d'action (à droite)

enter image description here

Pour le premier bouton, j'écrit ce qui suit style:

QPushButton { 
    background-color: #DCDCDC; 
    border: 1px solid #BEBEBE; 
} 
... 

Et cela s'appliquerait à tous QPushButtons dans le projet. Ensuite, j'ai besoin de définir un autre style d'action pour QPushButtons, mais qui devrait être sélectionné par le développeur. Comment puis-je faire ceci?

Je me attends quelque chose comme ceci:

QPushButton#ActionButton* { 
    background-color: blue; 
    border: 1px solid darkerblue; 
} 

Et si développeur précisera objectName de son bouton commençant par « ActionButton » (par exemple « ActionButtonSendRespond »), il utilisera le second style.

Répondre

2

Vous pouvez sous-classe QPushButton dans ActionButton de sorte que vous pouvez écrire CSS spécifique:

C++

#include <QPushButton> 

class ActionButton : public QPushButton 
{ 
    using QPushButton::QPushButton; 
}; 

CSS:

QPushButton { 
    background-color: #DCDCDC; 
    border: 1px solid #BEBEBE; 
} 
ActionButton { 
    background-color: blue; 
    border: 1px solid darkerblue; 
} 

Ensuite, lorsque les développeurs utilisent une classe ou l'autre, ils savent quel style s'appliquera. Et cela peut être utile si vous avez également besoin de changer le comportement dans la sous-classe.