8.3 QColorDialog颜色选择对话框
作者:互联网
一、QColorDialog颜色选择对话框
1.基本概念
- QColorDialog是PyQt5中用于设置控件或其他部件颜色的类,通过一个颜色选择对话框来设置颜色,类似之前学习的字体选择对话框。
- 通过一个弹出的对话框来完成其效果,这当中注意静态方法、构造函数以及QColor对象的学习。
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