1

背景色を変更しようとして、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_())

編集: Qt の助けを借りようとしていますが、コンボボックスやダブルスピンボックスなどのウィジェットの背景色を設定するにはどうすればよいですか? しかし、QT::red の代わりに何を使用すればよいかわかりません

4

1 に答える 1

1

事前定義された Qt カラー オブジェクトのリストは、このリンクにあります。この場合QtCore.Qt.red、 andを使用するだけですQtCore.Qt.blue。このクラスを使用して、QColor任意の色を生成することもできます。

好みの問題ですが、個人的には、スタイル シートを使用するのが最も簡単で強力な方法だと思います。

于 2011-07-15T10:02:34.923 に答える