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部件的背景色。