2011-07-15 4 views
1

J'essaye d'implémenter une LED dans PyQt nommée disLDR1 en essayant de changer la couleur de fond. J'essaie d'utiliser QPalette pour changer le BackgroundRole. Mais quel est l'équivalent de Qt :: red?PyQt et QtDesigner

Est-ce la bonne façon de définir la couleur d'arrière-plan ou existe-t-il un autre moyen?

#!/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_()) 

EDIT: Je suis en train de prendre l'aide de In Qt, how do I set the background color of a widget like combobox or double spin box? mais je ne sais pas quoi remplacer QT :: rouge

Répondre

1

Vous trouverez la liste des objets de couleur Qt prédéfinis à this link. Dans ce cas, vous devez simplement utiliser QtCore.Qt.red et QtCore.Qt.blue. Vous pouvez également utiliser la classe QColor pour générer des couleurs arbitraires.

C'est une question de préférence, mais je pense personnellement que le moyen le plus simple et le plus efficace serait d'utiliser un .

+0

Merci beaucoup. Je suis un python noob et je me cognais la tête depuis longtemps. – user846016