QColorDialog提供了選擇顏色值的對話框控件。
下面是運行源代碼:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017/11/1 下午3:03
# @Author : hukezhu
# @Site :
# @File : 1101-01-QColorDialog.py
# @Software: PyCharm
"""
在這個例子中,我們從QColorDialog選擇一個顏色值,改變背景一個QFrame控件顏色蓝翰。
"""
from PyQt5.QtWidgets import (QWidget, QPushButton, QFrame, QColorDialog,QApplication)
from PyQt5.QtGui import QColor
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
col = QColor(0,0,0)
self.btn = QPushButton('Dialog',self)
self.btn.move(20,20)
self.btn.clicked.connect(self.showDialog)
self.frm = QFrame(self)
self.frm.setStyleSheet("QWidget { background-color : %s}" % col.name())
self.frm.setGeometry(130,22,100,100)
self.setGeometry(300,300,250,180)
self.setWindowTitle('Color dialog')
self.show()
def showDialog(self):
col = QColorDialog.getColor()
if col.isValid():
self.frm.setStyleSheet("QWidget { background-color: %s }"
% col.name())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
這個例子包含一個按鈕和一個QFrame控件.最開始控件顏色置為黑色,點擊按鈕之后彈出選擇顏色值的對話框,我們點擊顏色值,確定之后,就改變了控件的背景顏色.
col = QColor(0, 0, 0) #置為黑色
col = QColorDialog.getColor() #彈出選擇顏色值的對話框
if col.isValid():
self.frm.setStyleSheet("QWidget { background-color: %s }"
% col.name())
我們檢查一下顏色是否有效往湿。如果單擊取消按鈕镐牺,則沒有返回有效顏色吵护。如果顏色是有效的远剩,我們使用樣式表改變背景色列赎。