QColorDialog提供了用于显示颜色的对话框。
#!/usr/bin/python # colordialog.py from PyQt5.QtWidgets import QApplication, QPushButton, QColorDialog from PyQt5 import QtWidgets from PyQt5.QtCore import Qt from PyQt5.QtGui import QColor class ColorDialog (QtWidgets.QWidget): def __init__(self, parent= None): QtWidgets.QWidget.__init__(self) color = QColor(0, 0, 0) self.setGeometry(300, 300, 350, 80) self.setWindowTitle('ColorDialog') self.button = QPushButton('Dialog', self) self.button.setFocusPolicy(Qt.NoFocus) self.button.move(20, 20) self.button.clicked.connect(self.showDialog) self.setFocus() self.widget = QtWidgets.QWidget(self) self.widget.setStyleSheet('QWidget{background-color:%s}'%color.name()) self.widget.setGeometry(130, 22, 100, 100) def showDialog(self): col = QColorDialog.getColor() if col.isValid(): self.widget.setStyleSheet('QWidget {background-color:%s}'%col.name()) if __name__ == "__main__": import sys app = QApplication(sys.argv) qb = ColorDialog() qb.show() sys.exit(app.exec_())
效果:
以上示例程序显示了一个按钮和一个QWidget部件,给widget部件的出世背景颜色为黑色。使用颜色对话框QColorDialog,我们可以改变widget部件的背景色。
# getColor(color, parent) # 第一项设置默认颜色,第二项设置父窗口对象 col = QColorDialog.getColor()
这一行语句用来弹出颜色对话框。
if col.isValid(): self.widget.setStyleSheet('QWidget {background-color:%s}'%col.name()) # name为16进制,可使用内置方法获取rgb或hvs等颜色表示方式,详见dir(col)
以上的语句首先检测颜色是否可用。如果用户单击了颜色对话框的取消按钮,则对话框将不返回任何可用的颜色。如果颜色可用,我们就使用stylesheets设置widget部件的背景色。
没有帐号? 立即注册