的PyQt和QtDesigner

问题描述:

我试图通过尝试改变背景颜色,以实现在PyQt的LED命名disLDR1。我正在尝试使用QPalette来更改BackgroundRole。但是什么是Qt :: red的等价物?的PyQt和QtDesigner

这是正确的方式来设置背景色或有任何其他方式?

#!/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 ::红色

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

它喜好的问题,但我个人认为去将是使用最简单,最有力的方式。

+0

非常感谢。我是一个Python noob,很长时间以来一直在抨击我的头。 – user846016