实现pyqt5的ComboBox的鼠标点击触发事件!

一、自定义MyComboBox

# MyComboBox.py
from PyQt5.QtWidgets import QComboBox
from PyQt5.QtCore import pyqtSignal             

class MyComboBox(QComboBox):
    clicked = pyqtSignal()          #创建一个信号
    def showPopup(self):            #重写showPopup函数
        self.clicked.emit()         #发送信号
        super(MyComboBox, self).showPopup()     # 调用父类的showPopup()

二、使用MyComboBox创建窗口空间

# test_ui.py
        self.PrintersList = MyComboBox(self.groupBox)	# 修改后
        # self.PrintersList = QtWidgets.QComboBox(self.groupBox) # 修改前

三、main函数中对clicked 信号进行绑定

# main_loop.py

    self.PrintersList.clicked.connect(self.scan_printer_list_slot)     		# 信号与槽函数的绑定

	# 槽函数的实现
    def scan_printer_list_slot(self):
	     print("扫描打印机并刷新列表")

 

PyQt5中,要实现点击事件触发前弹窗提示,你可以通过连接一个槽函数来处理按钮的点击信号。在这个槽函数中,你可以使用`QMessageBox`来创建一个提示对话框。如果用户确认操作,则继续执行点击事件的后续代码,否则不执行。下面是一个简单的例子: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QMessageBox class MainWindow(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 300, 300) self.setWindowTitle('点击事件触发前弹窗提示示例') self.button = QPushButton('点击我', self) self.button.move(50, 50) self.button.clicked.connect(self.showDialog) def showDialog(self): reply = QMessageBox.question(self, '提示', '您确定要执行该操作吗?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: # 在这里添加点击后要执行的代码 print("点击事件已被触发") else: print("未执行点击事件") def main(): app = QApplication(sys.argv) mainWin = MainWindow() mainWin.show() sys.exit(app.exec_()) if __name__ == '__main__': main() ``` 在这个示例中,我们创建了一个主窗口`MainWindow`,其中包含一个按钮。当按钮被点击时,会调用`showDialog`方法,该方法弹出一个`QMessageBox`询问用户是否确定要继续。根据用户的响应(点击“Yes”或“No”按钮),将执行不同的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值