学习《PyQt4入门指南 PDF中文版.pdf 》笔记
QColorDialog 提供了用于选择颜色的对话框
<span style="font-size:12px;">#!/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_())</span>
以上示例程序显示了一个按钮和一个QWidget部件,该widget部件的初始背景颜色为黑色。使用颜色对话框QColorDialog,我们可以改变widget部件的背景色。
col= QColorDialog.getColor()
这一行语句用来弹出颜色对话框。
if col.isValid():
self.widget.setStyleSheet('QWidget {background-color:%s}'%col.name())
以上的语句首先检测颜色时候可用。如果用户单击了颜色对话框的取消按钮,则对话框将不返回任何可用的颜色。如果颜色可用,我们将使用styleSheets设置widget部件的背景色。