【问题标题】:QPushButton get colorQPushButton 获取颜色
【发布时间】:2017-05-26 11:31:46
【问题描述】:

在这个函数中,我试图获取触发它的按钮的bgColor,所以背景颜色可以再次设置为默认颜色。

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)

它给出以下错误消息:

Could not parse stylesheet of object 0x234ba20

打印 bgColor 变量给出:

<PyQt5.QtGui.QColor object at 0x7f28792c8358>

【问题讨论】:

  • 总是质疑完整的错误信息(Traceback)。还有其他有用的信息,即。哪一行有问题。
  • 顺便说一句:bgColor 是仅存在于clickColor 中的局部变量,您在unClickColor 中使用它 - 您应该使用beforeColor
  • 并且您需要使用bgColor.name()QColor 转换为RGB 格式的字符串(例如“#FF0000”)。

标签: python button pyqt


【解决方案1】:

unclick函数中必须使用color name()方法和color参数名:

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

经过测试并且有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 2019-04-06
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    相关资源
    最近更新 更多