Ce que j'essaie de faire est d'appliquer CSS personnalisé à un widget personnalisé dérivant de QLabel
mais je n'ai pas de chance.La feuille de style CSS n'est pas appliquée à QWidget personnalisé
J'ai la classe personnalisée définie comme:
class CustomLabel : public QLabel {
}
Je n'ai pas réimplémenté la fonction paintEvent
que je pensais que, étant donné que le QLabel
standard prend en charge les feuilles de style CSS, je voudrais juste besoin de se référer à cette nouveau widget en CSS, par exemple:
CustomLabel {
background-color: #111111;
font-size: 18px;
font-weight: bold;
}
Malheureusement, à l'exécution, aucun style est appliqué le CustomLabel
et le style par défaut QLabel
est appliqué.
Quelqu'un peut-il suggérer pourquoi mes règles CSS sont ignorées pour CustomLabel
?
étapes pour Recréez
- Créer un projet Widgets Qt en utilisant Qt Creator
- Ajouter une classe personnalisée dérivée de
QLabel
et appellentCustomLabel
- Ajouter un
QLabel
sur un formulaire en utilisant le concepteur - Promouvoir l'étiquette en
CustomLabel
classe Appliquer la feuille de style en utilisant le code suivant dans
main.cpp
:a.setStyleSheet("CustomLabel {font-weight: bold;}");
Exécutez le programme et notez comment
CustomLabel
n'est pas décorée dans des conformément au style CSS.
Si vous avez CustomLabel a un espace de noms, vous devez ajouter cet espace de noms à votre CSS.Reportez-vous à cette question: https://stackoverflow.com/questions/26206492/qt-stylesheet-in-derived-class-in-c-namespace-selector –