其他分享
首页 > 其他分享> > 8.3 QColorDialog颜色选择对话框

8.3 QColorDialog颜色选择对话框

作者:互联网

一、QColorDialog颜色选择对话框

1.基本概念

2.代码

点击查看代码
from PyQt5.Qt import *
import sys

class Window(QWidget) :
    def __init__(self) :
        super().__init__()
        self.setWindowTitle("QColorDialog颜色选择对话框 - PyQt5中文网")
        self.resize(600, 500)
        self.func_list()

    def func_list(self) :
        self.func()

    def func(self) :
        ## 1.构造方法
        cd = QColorDialog(self)
        ## 2.既定颜色设置
        '''
        颜色位置
        0 2 4 ...
        1 3 5 ...
        '''
        #cd.setCustomColor(3, QColor(100, 120, 5))  # 3为位置下标
        ## 3.默认颜色设置
        #cd = QColorDialog(QColor(155, 200, 20), self)
        ## 4.输出窗口
        #cd.show()

        ## 5.案例:点击按钮实现功能
        btn=QPushButton(self)
        btn.move(100,100)
        btn.setText('选择颜色')
        #btn.clicked.connect(lambda :cd.open())

        ## 5.1使用show()设置背景色--可以自定义设置背景
        # def color(col):
        #     pal = QPalette() #创建颜色对象
        #     pal.setColor(QPalette.Background, col)  # 选择背景界面,插入颜色对象
        #     self.setPalette(pal)  # 设置背景色
        # cd.colorSelected.connect(color)
        # #cd.show()  # show()没有返回值,所以需要借助上面的槽函数完成背景色设置
        # btn.clicked.connect(lambda : cd.show())


        # # 5.2使用open()设置背景色
        # def color():
        #     pal = QPalette()
        #     pal.setColor(QPalette.Background, cd.selectedColor())  # 选择背景界面,获取选中颜色
        #     self.setPalette(pal)  # 设置背景色
        # #cd.open(color)  # open()直接当成链接信号
        # btn.clicked.connect(lambda : cd.open(color) )

        # # 5.3使用exec()设置背景色
        # def color():
        #     pal = QPalette()
        #     pal.setColor(QPalette.Background, cd.selectedColor())  # 选择背景界面,获取选中颜色
        #     self.setPalette(pal)  # 设置背景色
        # if cd.exec():  # 拥有返回值,直接调用color函数进行设置
        #     color()
        # # btn.clicked.connect(lambda : cd.open(color))


        '''
        # 6.选项控制
        # QColorDialog.ShowAlphaChannel  # 颜色透明度设置
        # QColorDialog.NoButtons  # 不现实OK和取消按钮
        '''
        # def color():
        #     pal = QPalette()
        #     pal.setColor(QPalette.Background, cd.currentColor())  # 选择背景界面,获取当前颜色
        #     self.setPalette(pal)  # 设置背景色
        # cd.currentColorChanged.connect(color)  # 链接信号
        # cd.setOptions(QColorDialog.ShowAlphaChannel) # 添加另外一个 QColorDialog.NoButtons |
        # cd.show()

        '''
        # 7.静态方法
        # QColorDialog.customCount()
        # QColorDialog.setCustomColor()
        # QColorDialog.customColor()
        # QColorDialog.setCustomColor()
        # QColorDialog.getColor()
        '''
        #btn.clicked.connect(lambda: print(QColorDialog.customCount()))  # 静态方法可以使用类调用也可以使用对象调用
        # btn.clicked.connect(lambda: print(cd.customCount()))  # 静态方法可以使用类调用也可以使用对象调用

        # 0是第一个颜色框,但是这里没有办法显示,是因为setCustomColor必须创建在qd之前
        #btn.clicked.connect(lambda: print(cd.setCustomColor(0, QColor(100, 120, 5))))  # 返回22和23行

        #测试getColor()
        def test():
            res=cd.getColor(QColor(100,200,1),self,'选择你喜欢的颜色')
            print(res)  #返回获得的颜色的值
        btn.clicked.connect(test)


if __name__ == '__main__' :
    app = QApplication(sys.argv)
    window = Window()

    window.show()
    sys.exit(app.exec_())

3.效果

标签:8.3,对话框,color,self,cd,btn,pal,QColorDialog
来源: https://www.cnblogs.com/yuyingblogs/p/16139231.html