MyParent.ui里有一个QPushbutton
将ui文件转为py文件->MyParent.py
MySon.py:
class MySon(QDialog, MyParent.Ui_Dialog):
helpSignal = pyqtSignal(str)
def __init__(self):
super().__init__(None)
self.setupUi(self)
self.num = 0
self.helpSignal.connect(self.showHelpMessage)
self.btnYes = QtWidgets.QPushButton(self)
self.btnYes.clicked.connect(self.on_btnYes_clicked)
self.btnYes.setGeometry(QtCore.QRect(0, 0, 60, 20))
self.btnYes.setText('按钮')
self.pushButton.clicked.connect(self.on_MyPushButton_clicked)
def keyPressEvent(self, event):
if event.key() == Qt.Key_F1:
self.helpSignal.emit("help message")
def showHelpMessage(self, message):
self.num += 1
print(self.num)
print(message)
def on_btnYes_clicked(self):
self.num += 1
print(self.num)
def on_MyPushButton_clicked(self):
print('on_pushButton_clicked')
信号和槽之间参数传递的几种情况:
from PyQt5.QtWidgets import QPushButton, QComboBox
from functools import partial
class MySon(QDialog, MyParent.Ui_Dialog):
def __init__(self):
super().__init__(None)
self.setupUi(self)
self.__first = QPushButton(self)
self.__second = QPushButton(self)
self.__cbx_first = QComboBox(self)
self.__cbx_second = QComboBox(self)
self.__cbx_first.addItem('a')
self.__cbx_first.addItem('b')
self.__cbx_first.addItem('c')
self.__cbx_second.addItem('d')
self.__cbx_second.addItem('e')
self.__cbx_second.addItem('f')
self.__first.setGeometry(200, 200, 80, 20)
self.__second.setGeometry(280, 200, 80, 20)
self.__cbx_first.setGeometry(360, 200, 80, 20)
self.__cbx_second.setGeometry(440, 200, 80, 20)
self.__first.clicked.connect(partial(self.function, 4))
self.__second.clicked.connect(lambda: self.function(2))
self.__cbx_first.currentIndexChanged.connect(lambda: self.function(3))
self.__cbx_second.currentIndexChanged[int].connect(self.cbxfun)
self.__cbx_second.currentIndexChanged[str].connect(self.cbxfun2)
def function(self, num):
print(num)
def cbxfun(self, index):
print(index)
def cbxfun2(self, s):
print(s)
第一个PushButton按下后会打出数字4
第二个PushButton按下后会打出数字2
第一个ComboBox选择不同选项时会打出3
第二个ComboBox选择不同选项时分别会打出
"0
d",
"1
e",
"2
f"