# -*- coding: UTF-8 -*-
'''這個例子顯示一個按鈕和一個QFrame。QFrame的背景為黑色。
通過QColorDialog,我們可以改變它的背景。'''
import sys
from PyQt5.QtWidgets import (QWidget ,QApplication ,QColorDialog ,QPushButton ,QFrame)
from PyQt5.QtGui import QColor
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
clo = QColor(0,0,0)#初始化 QFrame 為黑色
self.bt = QPushButton("colorDailog",self)
self.bt.move(20 ,20)
self.bt.clicked.connect(self.showDailog)
self.frm = QFrame(self)
self.frm.setStyleSheet("QWidget { background-color: %s }"
%clo.name())#設定 frm 顔色為 clo
self.frm.setGeometry(130 ,22 ,80 ,80) #(130,22)為左上角的點,(80,80)為尺寸
self.setGeometry(300 ,300 ,250 ,180)
self.setWindowTitle("Color dialog")
self.show()
def showDailog(self):
'''彈出一個ColorDailog 對話框,把擷取的顔色,給clo'''
clo = QColorDialog.getColor()
if clo.isValid() : #當clo擷取到了有效的顔色
#設定self.frm的顔色為clo擷取到的顔色
self.frm.setStyleSheet("QWidget { background-color: %s }"%clo.name())
if __name__ == "__main__":
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
python PyQt5 對話框之QColorDialog