2017-07-12 3 views
0

J'ai un QTableWidget avec quelques QTableWidgetItem dedans. Pour le style que j'utilise:changer le style de QTableWidgetItem en fonction des drapeaux

QTableWidget::item { 
    ... 
} 

Maintenant, quelques-uns des éléments sont en lecture seule. Comment puis-je les colorier différemment en utilisant la feuille de style? Normaly J'utiliser une propriété puis sélectionnez avec:

QTableWidgetItem[readOnly="true"] 

Mais cela ne fonctionne pas puisque nous définir le style de la QTableWidget et QTableWidgetItem n'a pas de méthode setProperty.

+0

Je pense que vous devriez être interrogez l'état du QTableWidgetItem dans une instruction if et définir la couleur –

Répondre

1

Normalement, le style doit être

WIDGET::SUB-CONTROL:PSEUDO-STATE 

S'il vous plaît essayer comme dit ci-dessous.

QTableWidget::item:read-only { 
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e7effd, stop: 1 #cbdaf1); 
} 

Pour la liste des sous-contrôles et pseudo-Unis se réfèrent lien ci-dessous:

http://doc.qt.io/qt-5/stylesheet-reference.html#selection-color-prop

+0

Grande cela a fonctionné avec un tweak mineur. J'avais besoin d'utiliser 'enabled' au lieu de' read-only'. Une question supplémentaire: j'aime les documents qt, sauf pour la partie feuille de style. Avez-vous par hasard maintenant une bonne source pour une feuille de triche facile montrant toutes les propriétés de chaque widget et sélecteur? –

+0

Désolé, je n'en ai pas. Je suis seulement ce lien ---- http://doc.qt.io/qt-5/stylesheet-reference.html .... en fait, il couvre la plupart des informations. Il a la liste complète des sous-contrôles et la liste des pseudo-états. – Naidu