qt QColorDialog


原文链接: qt QColorDialog

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())

我们检查一下颜色是否有效。如果单击取消按钮,则没有返回有效颜色。如果颜色是有效的,我们使用样式表改变背景色。

运行效果图:

image.png

`