2017-09-27 2 views
1

J'ai ma QApplication de bureau (Qt 5.9) sur laquelle j'ai réussi à définir un style en utilisant une feuille de style. Au moment de l'exécution, tous les QWidget ont l'apparence voulue.
Ce que je dois savoir est la couleur de fond d'un widget de style spécifique, disons un QTooltip.Comment obtenir QWidget background-color après avoir défini une QStyleSheet

J'ai essayé la méthode paletteQWidget :: mais ce que je suis regardé comme la couleur par défaut du système pour le QPalette :: ColorRole J'ai demandé.
De plus, qt docs recommande de ne pas utiliser cette méthode lors de l'utilisation de feuilles de style. Alors, de façon plus générale, comment peut-on interroger une propriété de widget définie via des feuilles de style?

+0

Qt génère instance spéciale de 'QProxyStyle' en fonction de votre QSS. Il n'y a aucun moyen de l'inverser. –

Répondre

0

Vous ne pouvez pas accéder directement aux propriétés individuelles de la feuille de style. Ce que vous pouvez faire, c'est récupérer la feuille de style et ensuite vous devrez l'analyser et trouver la propriété que vous recherchez (some_widget->styleSheet() le retournerait comme QString).

Si vous ne voulez pas faire cela, et que vous voulez accéder à la palette directement, vous devez l'utiliser à la place de la feuille de style pour changer les couleurs.

code exemple comment vous pouvez définir le style de votre code en utilisant la palette au lieu de feuille de style:

QPalette px; 
px.setColor(QPalette::Text, QColor(255, 255, 255)); // Set text color to white 
px.setColor(QPalette::Base, QColor(0, 0, 0)); // Set background to black 
some_widget->setPalette(px);