从品牌网站建设到网络营销策划,从策略到执行的一站式服务
本篇文章为大家展示了PyQt5中怎么重写QComboBox鼠标点击事件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
从事雅安移动机房,服务器租用,云主机,网络空间,域名注册,CDN,网络代维等服务。1、建立工程创建界面什么的我就不写了,百度一大堆,重点就在重写QComboBox中的showPopup函数,我生成的界面文件为MainWidget.py。
2、我一直想大化QTDesigner的作用,我看到有一位网友是重写了再进行布局,我觉得这样很麻烦,所以我的做法是把布局都做好了,再转换成py文件之后,修改里面的代码,布局就不放出来,很渣,直接看代码。
from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtWidgets import QComboBox from PyQt5.QtCore import pyqtSignal #导入这个模块才可以创建信号 class MyComboBox(QComboBox): popupAboutToBeShown = pyqtSignal() #创建一个信号 # def mousePressEvent(self, QMouseEvent):#这个是重写鼠标点击事件 # self.popupAboutToBeShown.emit() def showPopup(self): #重写showPopup函数 self.popupAboutToBeShown.emit() #发送信号
这样重写就完成了,我之前想的是重写鼠标点击事件,也就是上面代码中重写鼠标点击事件,但是经过实验,重写这个函数之后下拉列表就弹不出来了,后来研究了一下,在QComboBox中应该是鼠标点击事件触发了下拉函数showPopup,所以改为重写showPopup。
通过查看QT帮助文档可以看到
virtual void showPopup()
virtual关键字用于修改方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。
3、接下来就是修改建立界面的代码,只需要修改一行,原代码如下
self.ComBox = QtWidgets.QComboBox(self.splitter)
原代码是调用QComboBox类,也就是showPopup函数没有修改过,将其改为
self.ComBox = MyComboBox(self.splitter)
这是调用了重写后的类,其他的QComboBox控件不做修改,其功能就还是正常的。
最后绑定信号与槽
self.ComBox.popupAboutToBeShown.connect(Form.refresh)
refresh槽函数在新建的py文件中定义
上述内容就是PyQt5中怎么重写QComboBox鼠标点击事件,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图