PyQt5 控件学习(一个一个学习之QColorDialog)
时间:2019-08-22
本文章向大家介绍PyQt5 控件学习(一个一个学习之QColorDialog),主要包括PyQt5 控件学习(一个一个学习之QColorDialog)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
QColorDialog的继承图:
QColorDialog的描述:
它整体的功能都是和QFontDialog 差不多的。
QColorDialog的继承:
它继承自 QDialog
QColorDialog的功能作用:
from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QColorDialog的学习") self.resize(400,400) self.set_ui() def set_ui(self): color = QColor(20,20,200) self.color = color colorDialog = QColorDialog(color,self) self.colorDialog = colorDialog self.test() def test(self): btn = QPushButton(self) btn.setText("按钮") btn.move(0,300) btn.clicked.connect(self.btn_clicked_slot) def btn_clicked_slot(self): self.colorDialog.setWindowTitle("选择一个好看的颜色") self.colorDialog.open() if __name__ == '__main__': app =QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())
打开对话框,拿到用户选择的颜色:
此时要用到信号 :
from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QColorDialog的学习") self.resize(400,400) self.set_ui() def set_ui(self): color = QColor(20,20,200) self.color = color colorDialog = QColorDialog(color,self) self.colorDialog = colorDialog self.test() def test(self): btn = QPushButton(self) btn.setText("按钮") btn.move(0,300) btn.clicked.connect(self.btn_clicked_slot) def btn_clicked_slot(self): self.colorDialog.setWindowTitle("选择一个好看的颜色") self.colorDialog.colorSelected.connect(lambda color:print(color)) self.colorDialog.open() if __name__ == '__main__': app =QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())
下面需求,用户选择的颜色,修改控件的背景颜色:
from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QColorDialog的学习") self.resize(400,400) self.set_ui() def set_ui(self): color = QColor(20,20,200) self.color = color colorDialog = QColorDialog(color,self) self.colorDialog = colorDialog self.test() def test(self): btn = QPushButton(self) btn.setText("按钮") btn.move(0,300) btn.clicked.connect(self.btn_clicked_slot) def btn_clicked_slot(self): self.colorDialog.setWindowTitle("选择一个好看的颜色") def colorSelected_slot(color): #调色板 palette = QPalette() palette.setColor(QPalette.Background,color) # 颜色用于 背景 #给窗口 设置调好的颜色 self.setPalette(palette) self.colorDialog.colorSelected.connect(colorSelected_slot) self.colorDialog.open() if __name__ == '__main__': app =QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())
另外open() 函数中还可以放一个槽函数,
from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QColorDialog的学习") self.resize(400,400) self.set_ui() def set_ui(self): color = QColor(20,20,200) self.color = color colorDialog = QColorDialog(color,self) self.colorDialog = colorDialog self.test() def test(self): btn = QPushButton(self) btn.setText("按钮") btn.move(0,300) btn.clicked.connect(self.btn_clicked_slot) def btn_clicked_slot(self): self.colorDialog.setWindowTitle("选择一个好看的颜色") def colorSelected_slot(): #调色板 palette = QPalette() # palette.setColor(QPalette.Background,self.colorDialog.currentColor()) # 颜色用于 背景 palette.setColor(QPalette.Background,self.colorDialog.selectedColor()) # 颜色用于 背景 #给窗口 设置调好的颜色 self.setPalette(palette) # self.colorDialog.colorSelected.connect(colorSelected_slot) self.colorDialog.open(colorSelected_slot) #注意它是不会将选择的color 传入槽函数的 if __name__ == '__main__': app =QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())
补:
利用信号实时看到选择的颜色展示:
from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QColorDialog的学习") self.resize(400,400) self.set_ui() def set_ui(self): color = QColor(20,20,200) self.color = color colorDialog = QColorDialog(color,self) self.colorDialog = colorDialog self.test() def test(self): btn = QPushButton(self) btn.setText("按钮") btn.move(0,300) btn.clicked.connect(self.btn_clicked_slot) def btn_clicked_slot(self): self.colorDialog.setWindowTitle("选择一个好看的颜色") def colorSelected_slot(): #调色板 palette = QPalette() palette.setColor(QPalette.Background,self.colorDialog.currentColor()) # 颜色用于 背景 #给窗口 设置调好的颜色 self.setPalette(palette) self.colorDialog.currentColorChanged.connect(colorSelected_slot) self.colorDialog.open() if __name__ == '__main__': app =QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())
继续,除了open 之外,也可以使用exec ()
from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QColorDialog的学习") self.resize(400,400) self.set_ui() def set_ui(self): color = QColor(20,20,200) self.color = color colorDialog = QColorDialog(color,self) self.colorDialog = colorDialog self.test() def test(self): btn = QPushButton(self) btn.setText("按钮") btn.move(0,300) btn.clicked.connect(self.btn_clicked_slot) def btn_clicked_slot(self): self.colorDialog.setWindowTitle("选择一个好看的颜色") def colorSelected_slot(): #调色板 palette = QPalette() palette.setColor(QPalette.Background,self.colorDialog.selectedColor()) # 颜色用于 背景 #给窗口 设置调好的颜色 self.setPalette(palette) if self.colorDialog.exec(): colorSelected_slot() if __name__ == '__main__': app =QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())
from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QColorDialog的学习") self.resize(400,400) self.set_ui() def set_ui(self): color = QColor(20,20,200) self.color = color colorDialog = QColorDialog(color,self) self.colorDialog = colorDialog self.test() def test(self): btn = QPushButton(self) btn.setText("按钮") btn.move(0,300) btn.clicked.connect(self.btn_clicked_slot) def btn_clicked_slot(self): self.colorDialog.setOptions(QColorDialog.NoButtons | QColorDialog.ShowAlphaChannel) #可以选择透明度 self.colorDialog.setWindowTitle("选择一个好看的颜色") def colorSelected_slot(): #调色板 palette = QPalette() palette.setColor(QPalette.Background,self.colorDialog.selectedColor()) # 颜色用于 背景 #给窗口 设置调好的颜色 self.setPalette(palette) self.colorDialog.open() if __name__ == '__main__': app =QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())
主要是自定义颜色和标准颜色,
from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QColorDialog的学习") self.resize(400,400) self.set_ui() def set_ui(self): color = QColor(20,20,200) self.color = color colorDialog = QColorDialog(color,self) self.colorDialog = colorDialog self.test() def test(self): btn = QPushButton(self) btn.setText("按钮") btn.move(0,300) btn.clicked.connect(self.btn_clicked_slot) def btn_clicked_slot(self): self.colorDialog.setOptions(QColorDialog.NoButtons | QColorDialog.ShowAlphaChannel) #可以选择透明度 self.colorDialog.setWindowTitle("选择一个好看的颜色") self.colorDialog.open() print("静态方法 自定义颜色个数 customCount",QColorDialog.customCount()) print("静态方法 设置自定义颜色 setCustomColor",QColorDialog.setCustomColor(0,QColor(10,200,20))) print("静态方法 设置标准颜色 setStandardColor",QColorDialog.setStandardColor(0,QColor(0,0,255))) if __name__ == '__main__': app =QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())
下面是最后一个静态方法:getColor()
from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QColorDialog的学习") self.resize(400,400) self.set_ui() def set_ui(self): color = QColor(20,20,200) self.color = color colorDialog = QColorDialog(color,self) self.colorDialog = colorDialog self.test() def test(self): btn = QPushButton(self) self.btn = btn btn.setText("按钮") btn.move(0,300) btn.clicked.connect(self.btn_clicked_slot) def btn_clicked_slot(self): #getColor 会自动打开对话框 color = self.colorDialog.getColor(QColor(255,0,0),self,"请选择颜色",QColorDialog.ShowAlphaChannel,) print(color) #创建个调色板 palette = QPalette() palette.setColor(QPalette.Background,color) self.setPalette(palette) if __name__ == '__main__': app =QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())
QColorDialog的信号:
from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QColorDialog的学习") self.resize(400,400) self.set_ui() def set_ui(self): color = QColor(20,20,200) self.color = color colorDialog = QColorDialog(color,self) self.colorDialog = colorDialog self.test() def test(self): btn = QPushButton(self) self.btn = btn btn.setText("按钮") btn.move(0,300) btn.clicked.connect(self.btn_clicked_slot) def btn_clicked_slot(self): self.colorDialog.setWindowTitle("请选择一个颜色") def colorDialog_selectedColor_slot(color): #创建调色板 改变按钮文本的颜色 palette = QPalette() palette.setColor(QPalette.ButtonText,color) self.btn.setPalette(palette) #注意colorSelected 和selectedClor 的区别 后者不是信号 self.colorDialog.colorSelected.connect(colorDialog_selectedColor_slot) self.colorDialog.open() if __name__ == '__main__': app =QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())
from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QColorDialog的学习") self.resize(400,400) self.set_ui() def set_ui(self): color = QColor(20,20,200) self.color = color colorDialog = QColorDialog(color,self) self.colorDialog = colorDialog self.test() def test(self): btn = QPushButton(self) self.btn = btn btn.setText("按钮") btn.move(0,300) btn.clicked.connect(self.btn_clicked_slot) def btn_clicked_slot(self): self.colorDialog.setWindowTitle("请选择一个颜色") def colorDialog_selectedColor_slot(color): #创建调色板 改变按钮文本的颜色 palette = QPalette() palette.setColor(QPalette.ButtonText,color) self.btn.setPalette(palette) self.colorDialog.currentColorChanged.connect(colorDialog_selectedColor_slot) self.colorDialog.open() if __name__ == '__main__': app =QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())
而且,当实时展示的时候,可以将按钮给去掉 !
总结:
以上就是颜色选择对话框,下面看文件选择对话框QFileDialog :https://www.cnblogs.com/zach0812/p/11392839.html
原文地址:https://www.cnblogs.com/zach0812/p/11392840.html
- 博弈论入门之巴什博奕
- 理清字符集和字符编码关系
- 我是如何巧妙渗入安全脉搏的(附官方还原详情)
- vscode编写插件详细过程
- zabbix最新SQL注入漏洞+EXP
- 本地密码检索工具 – LaZagne Project
- 我是如何在SQLServer中处理每天四亿三千万记录的
- 程序猿是如何解决SQLServer占CPU100%的
- 记一次SQLServer的分页优化兼谈谈使用Row_Number()分页存在的问题
- 分享一个自制的 .net线程池1
- 分享一个自制的 .net线程池2
- 基于百度翻译的简单爬虫翻译-- coding:utf-8 --访问网址模拟浏览器创建文件夹用一个text文件保存,文件名用单词名字
- .net采集网页方法大全(5种)
- C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 使用 Yaml 进行 selenium 的 po 设计
- 几道暑期实习笔试题
- Java自动化测试(selenium 22)
- linux 实现双网卡绑定单个IP——team篇
- Eclipse华丽转身之控件表格工厂
- 面试常考知识点总结——面试必看
- linux 实现双网卡绑定单个IP——bond篇
- Hacking with iOS: SwiftUI Edition - 愿望清单项目(一)
- 重拾Java Web应用的基础体系结构
- 使用SAP C4C自定义BO实现自定义的Number Range
- 限流算法简介及Guava RateLimiter令牌桶限流介绍
- K8S的名称空间创建&&版本的升级、回滚操作
- SAP Cloud for Customer CLR(Code List Restriction)的一种高级用法
- SAP WebClient UI One Hit Navigation的实现方法
- 【打包构建】Mac下使用expect实现执行sudo命令时自动输入密码