PyQt и QtDesigner - PullRequest
       14

PyQt и QtDesigner

1 голос
/ 15 июля 2011

Я пытаюсь реализовать светодиод в PyQt с именем disLDR1, пытаясь изменить цвет фона.Я пытаюсь использовать 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_())

РЕДАКТИРОВАТЬ: Я пыталсяполучить помощь от В Qt, как мне установить цвет фона виджета, такого как комбинированный список или двойное вращение? , но не знаю, что заменить QT :: red

1 Ответ

1 голос
/ 15 июля 2011

Список предопределенных цветовых объектов Qt можно найти по этой ссылке .В этом случае вам просто нужно использовать QtCore.Qt.red и QtCore.Qt.blue.Вы также можете использовать класс QColor для генерации произвольных цветов.

Это вопрос предпочтений, но я лично считаю, что самый простой и эффективный способ - использовать таблица стилей .

...