2017-01-11 25 views
2

In dieser Funktion versuche ich die bgColor der Schaltfläche, die es auslöst, so dass die Hintergrundfarbe wieder auf die Standardfarbe festgelegt werden kann.QPushButton get Farbe

def clickColor(button, color): 
    bgColor = button.palette().color(QPalette.Background) 
    button.setStyleSheet("background-color: %s" % color) 
    QTimer.singleShot(300, lambda: unClickColor(button, bgColor)) 

def unClickColor(button, beforeColor): 
    button.setStyleSheet("background-color: %s" % bgColor) 

Es gibt die folgende Fehlermeldung:

Could not parse stylesheet of object 0x234ba20 

die Variable bgColor Drucken gibt:

<PyQt5.QtGui.QColor object at 0x7f28792c8358> 
+0

immer in Frage gestellt volle Fehlermeldung (Traceback). Es gibt andere nützliche Informationen, d. Welche Linie macht ein Problem? – furas

+0

BTW: 'bgColor' ist eine lokale Variable, die nur in' clickColor' existiert und Sie verwenden sie in 'unClickColor' - Sie sollten' beforeColor' verwenden. – furas

+0

Und Sie müssen 'bgColor.name()' verwenden, um 'QColor' in eine Zeichenfolge im RGB-Format (z. B." # FF0000 ") zu konvertieren. – ekhumoro

Antwort

1

Muss Farbbezeichnung() -Methode und die Farbparameternamen in unclick Funktion verwenden:

def unClickColor(button, beforeColor): 
    button.setStyleSheet("background-color: %s" % beforeColor.name()) 

Getestet und funktioniert.