【问题标题】:PyQt and QtDesignerPyQt 和 QtDesigner
【发布时间】:2011-07-15 08:53:39
【问题描述】:

我正在尝试通过更改背景颜色在 PyQt 中实现一个名为 disLDR1 的 LED。我正在尝试使用 QPalette 来更改 BackgroundRole。但是 Qt::red 的等价物是什么?

这是设置背景颜色的正确方法还是有其他方法?

#!/usr/bin/python -d

import sys
from PyQt4 import QtCore, QtGui
from main import Ui_Form
from PyQt4.QtGui import QPalette

class Top(QtGui.QMainWindow):
    def __init__(self, parent = None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_Form()
        self.ui.setupUi(self)
        for i in 1, 10:
            self.setOff()
            self.setOn()
    def setOff(self):
        self.pal = QPalette(self.ui.disLDR1.palette())
        self.pal.setColor(self.ui.disLDR1.backgroundRole(), <<<RED COLOR>>>)
        self.ui.disLDR1.setPalette(pal)
    def setOn(self):
        self.pal = QPalette(self.ui.disLDR1.palette())
        self.pal.setColor(self.ui.disLDR1.backgroundRole(), <<<GREEN COLOR>>>)
        self.ui.disLDR1.setPalette(pal)


if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    myapp = Top()
    myapp.show()
    sys.exit(app.exec_())

编辑:我一直在尝试从 In Qt, how do I set the background color of a widget like combobox or double spin box? 获得帮助,但不知道用什么来代替 QT::red

【问题讨论】:

    标签: pyqt4 qt-designer


    【解决方案1】:

    您可以在this link 找到预定义的 Qt 颜色对象列表。在这种情况下,您只需要使用QtCore.Qt.redQtCore.Qt.blue。您还可以使用QColor 类生成任意颜色。

    这是一个偏好问题,但我个人认为最简单和最强大的方法是使用style sheet

    【讨论】:

    • 非常感谢。我是一个 Python 菜鸟,很长一段时间都在用这个来敲打我的头。
    猜你喜欢
    • 2011-11-23
    • 1970-01-01
    • 2011-01-24
    • 2019-02-01
    • 2018-03-18
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 2018-05-12
    相关资源
    最近更新 更多