打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python语言编程系列007----PyQt中自定义控件之颜色指示选择框

问题提出

在软件GUI界面设计中,经常需要使用颜色选择及指示的控件。在PyQt中,定义如下形式的控件,要求:

控件的外观显示当前选中的颜色

单击该控件能弹出颜色选择框选择新的颜色

在弹出的颜色选择框中显示的初始颜色是控件上次的颜色

下图演示了该自定义控件的典型使用界面,在该图中使用了6个颜色控件来设置软件中其它控件的颜色属性值: 

 

解决方法

实现上图所示自定义颜色指示选择框控件,主要需要考虑以下几个方面:

(1)自定义控件的基类为QFrame且风格设为:QFrame.Panel | QFrame.Sunken

(2)自定义控件的自动填充背景属性设为真

(3)更改自定义控件的外观颜色使用函数:setPalettecolor

(4)重写鼠标单击事件函数mousePressEvent,在该事件中处理新颜色的选择及通知主程序颜色已经改变了。

其中,在第4条中,弹出颜色选择框,使用QColorDialog类的getColor函数选择新的颜色,在该函数中初始颜色值设为上次控件的颜色值,即self.palette().color(QPalette.Window),通过自定义信号sigColorChanged(定义为pyqtSignal(QColor))将新颜色值发送到调用该控件的主程序。

实现代码

结合上面的思路,Python中该自定义控件的类实现代码如下图所示:

 
 

在主程序中,调用上面的类即可实现一个自定义的颜色指示选择框控件。

欢迎加关注,共同交流。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【第八节】PyQt5控件(II)
Python学习之旅:用Python制作一个打字训练小工具
Python
PyQt5
QT创建自定义窗口部件
arcgis api for flex 高级主题(二) 自定义控件的开发
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服