欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PyQt5重寫QComboBox的鼠標點擊事件方法

 更新時間:2019年06月25日 11:04:34   作者:pzx_hkq  
今天小編就為大家分享一篇PyQt5重寫QComboBox的鼠標點擊事件方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

最近學PyQt5,想要做一個串口調試助手來練練手,之前用了正點原子的串口上位機,覺得點擊ComboBox自動檢測串口這個功能很棒,之前用QT5寫串口調試助手的時候也想加入這個功能,但是一直沒有成功,之后就不了了之,現在用了PyQt之后就想著一定要實現這個功能,百度了之后看了很多資料都沒有找到直接的解決方法,但是大家都是在強調重寫鼠標點擊事件,然后自己慢慢實驗終于寫出來了。

我的開發(fā)環(huán)境是PyCharm+Python3.6+PyQt5.9.2

1、建立工程創(chuàng)建界面什么的我就不寫了,百度一大堆,重點就在重寫QComboBox中的showPopup函數,我生成的界面文件為MainWidget.py。

2、我一直想最大化QTDesigner的作用,我看到有一位網友是重寫了再進行布局,我覺得這樣很麻煩,所以我的做法是把布局都做好了,再轉換成py文件之后,修改里面的代碼,布局就不放出來,很渣,直接看代碼。

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QComboBox
from PyQt5.QtCore import pyqtSignal  #導入這個模塊才可以創(chuàng)建信號

class MyComboBox(QComboBox):
  popupAboutToBeShown = pyqtSignal()   #創(chuàng)建一個信號
  # def mousePressEvent(self, QMouseEvent):#這個是重寫鼠標點擊事件
  #   self.popupAboutToBeShown.emit()
  def showPopup(self):          #重寫showPopup函數
    self.popupAboutToBeShown.emit()   #發(fā)送信號

這樣重寫就完成了,我之前想的是重寫鼠標點擊事件,也就是上面代碼中重寫鼠標點擊事件,但是經過實驗,重寫這個函數之后下拉列表就彈不出來了,后來研究了一下,在QComboBox中應該是鼠標點擊事件觸發(fā)了下拉函數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的鼠標點擊事件方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python繪制地震散點圖

    python繪制地震散點圖

    這篇文章主要為大家詳細介紹了python繪制地震散點圖的相關方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • python2.7安裝圖文教程

    python2.7安裝圖文教程

    這篇文章主要為大家詳細介紹了python2.7安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 《Python之禪》中對于Python編程過程中的一些建議

    《Python之禪》中對于Python編程過程中的一些建議

    這篇文章主要介紹了《Python之禪》中對于Python編程過程中的一些建議,需要的朋友可以參考下
    2015-04-04
  • PyQt4實現下拉菜單可供選擇并打印出來

    PyQt4實現下拉菜單可供選擇并打印出來

    這篇文章主要為大家詳細介紹了PyQt4實現下拉菜單可供選擇并打印出來,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • python文件特定行插入和替換實例詳解

    python文件特定行插入和替換實例詳解

    這篇文章主要介紹了python文件特定行插入和替換實例詳解的相關資料,需要的朋友可以參考下
    2017-07-07
  • Python網絡編程之HTTP客戶端模塊urllib與urllib3

    Python網絡編程之HTTP客戶端模塊urllib與urllib3

    這篇文章介紹了Python網絡編程之HTTP客戶端模塊urllib與urllib3,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • python smtplib模塊自動收發(fā)郵件功能(二)

    python smtplib模塊自動收發(fā)郵件功能(二)

    這篇文章主要為大家詳細介紹了python smtplib模塊自動收發(fā)郵件功能的第二篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Python類的繼承與多態(tài)詳細介紹

    Python類的繼承與多態(tài)詳細介紹

    大家好,本篇文章主要講的是Python類的繼承與多態(tài)詳細介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • 基于Python編寫個語法解析器

    基于Python編寫個語法解析器

    這篇文章主要為大家詳細介紹了如何基于Python編寫個語法解析器,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以了解一下
    2023-07-07
  • 解決Tensorflow 內存泄露問題

    解決Tensorflow 內存泄露問題

    今天小編就為大家分享一篇解決Tensorflow 內存泄露問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02

最新評論