Nel mio programma PyQt4, richiamo QColor dall'utente tramite QColorDialog.
Ho quindi bisogno di formattare questa QColor per essere utilizzato in un foglio di stile, che ho attualmente a raggiungere chiamando ...Qt - Formato Q Colore da utilizzare nel foglio di stile?
QColor.name()
... che restituisce qualcosa come '# 00FF00' che sarebbe poi sottoposti a semplice stringa manipolazione da impostare come foglio di stile per un widget. ad esempio:
QWidget.setStyleSheet('* { background-color: '+ QColor.name() + ' }')
più avanti nel programma, il colore di sfondo del widget deve essere recuperato (usando .styleSheet() e più semplice manipolazione di stringhe) e convertito in una stringa che quando eval() ed, sarebbe costruire un Q Colore del colore identico.
Deve essere convertito in QColor, poiché viene successivamente utilizzato in un QBrush. QColor deve essere convertito in una stringa di linea perché è scritta nel file e importata da detto file tramite eval().
(La stringa quando eval() ed deve passare il colore al costruttore QColor, poiché la stringa è solo una riga).
Alla fine, ho bisogno di qualcosa simile (anche se non è possibile in questo modo) come questo:
ColorString = str(QtGui.QColorDialog.getColor().name())
EvalString = "QtGui.QColor(" + ColorString +")"
Naturalmente, questo metodo non funziona perché il costruttore QColor non accetta un tale formato ' # 00ff00 'che è il formato fornito da QColorDialog.name() e accettato da QWidget.setStyleSheet().
Come posso effettivamente raggiungere questo?
Esiste comunque una conversione di stringa come "# 00ff00" in 3 numeri interi che rappresentano Rosso, Verde e Blu che potrebbero quindi essere inviati al costruttore QColor?
Grazie!
Nota:
Mi rendo conto che un tale formato '# 00FF00' non comporta una rappresentazione di quei tre colori, ma non capisco che cosa 'FF' mezzi, e chiamando .red() su un QColor non lo fa restituisce il numero intero suggerito dal formato '# 00ff00'.
è probabilmente ovvio che io non capisco i colori :)
Spec:
- PyQt4
- Python 2.7
- Windows 7
grazie, modificato –