天天看點

python PyQt5 對話框之QColorDialog

# -*- 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