一、自定义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("扫描打印机并刷新列表")