我试图通过尝试更改背景颜色来实现名为disLDR1的PyQt中的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
答案 0 :(得分:1)
您可以在this link找到预定义的Qt颜色对象列表。在这种情况下,您只需要使用QtCore.Qt.red
和QtCore.Qt.blue
。您还可以使用QColor
类生成任意颜色。
这是一个偏好问题,但我个人认为最简单,最有效的方法是使用style sheet。