2012-06-22 14 views

risposta

2

Questo funziona per me:

QPalette p = myCheckBox->palette(); 
p.setColor(QPalette::Active, QPalette::WindowText, green); 
myCheckBox->setPalette(p); 
0

Ho eseguito int o questo problema usando varie versioni di Qt5 (5.2, 5.4). Per farlo con i fogli di stile che ho dovuto utilizzare le proprietà Pseudo-States: http://doc.qt.io/qt-4.8/stylesheet-reference.html#list-of-pseudo-states

Esempio:

myCheckbox->setStyleSheet("QCheckBox:unchecked{ color: red; }QCheckBox:checked{ color: red; }"); 

Impostazione entrambi gli stati cambiati i colori per me. Sembra che ci siano alcune stranezze simili nel foglio di stile e nel sistema di palette, quindi tieni gli occhi aperti e prova alcune cose diverse (selettori, pseudo-stati, ecc.)

1

Sembra che per alcuni widget devi forzare l'uso di "widget-engine" non di sistema. Per la casella di controllo può essere fatto impostando i bordi su nessuno. Così lo stile di casella di controllo si presenta come:

QCheckBox { 
    border: none; 
    color: white; 
} 

Un comportamento simile è richiesto da altri widget. Alcune proprietà di stile non disabilitano l'aspetto nativo. Ad esempio QPushButton (http://doc.qt.io/qt-4.8/stylesheet-reference.html)

Problemi correlati