QColorDialog提供了用于显示颜色的对话框。
#!/usr/bin/python
# -*- coding: utf-8 -*- import sys
from PyQt4 import QtGui, QtCore class ColorDialog(QtGui.QWidget):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self) color = QtGui.QColor(0, 0, 0)
self.setGeometry(300, 300, 250, 180)
self.setWindowTitle('ColorDialog') self.button = QtGui.QPushButton('Dialog', self)
self.button.setFocusPolicy(QtCore.Qt.NoFocus)
self.button.move(20, 20) self.connect(self.button, QtCore.SIGNAL('clicked()'), self.showDialog)
self.setFocus() self.widget = QtGui.QWidget(self)
self.widget.setStyleSheet('QWidget {background-color:%s}' % color.name())
self.widget.setGeometry(130, 22, 100, 100) def showDialog(self):
col = QtGui.QColorDialog.getColor()
if col.isValid():
self.widget.setStyleSheet('QWidget {background-color:%s}' % col.name()) app = QtGui.QApplication(sys.argv)
colorDialog = ColorDialog()
colorDialog.show()
sys.exit(app.exec_())
效果:
以上示例程序显示了一个按钮和一个QWidget部件,给widget部件的出世背景颜色为黑色。使用颜色对话框QColorDialog,我们可以改变widget部件的背景色。
col = QtGui.QColorDialog.getColor()
这一行语句用来弹出颜色对话框。
if col.isValid():
self.widget.setStyleSheet('QWidget {background-color:%s}' % col.name())
以上的语句首先检测颜色是否可用。如果用户单击了颜色对话框的取消按钮,则对话框将不返回任何可用的颜色。如果颜色可用,我们就使用stylesheets设置widget部件的背景色。