self.okButton.clicked.connect(self.on_okBtn_clicked)
控件名字想好比如itemsName,然后直接就写槽函数 on_itemsName_clicked,用QtCore.pyqtSlot()注册一下
# on_objectname_signalname
from PyQt5.QtCore import QThread,pyqtSignal,QDateTime
from PyQt5 import QtCore
from PyQt5.QtWidgets import QWidget,QApplication,QDialog,QLineEdit,QPushButton,QHBoxLayout
import time
import sys
class AutoSignalSlot(QWidget):
def __init__(self, parent=None):
super(AutoSignalSlot, self).__init__(parent)
self.okButton = QPushButton("OK",self)
self.okButton.setObjectName('OkBtn') #为控件起名字
self.CancelButton = QPushButton("Cancel", self)
self.CancelButton.setObjectName('CancelBtn') # 为控件起名字
layout = QHBoxLayout()
layout.addWidget(self.okButton)
layout.addWidget(self.CancelButton)
self.setLayout(layout)
#方式1:
#self.okButton.clicked.connect(self.on_okBtn_clicked)
# 方式2:控件名字想好比如itemsName,然后直接就写槽函数 on_itemsName_clicked,用QtCore.pyqtSlot()注册一下
# on_objectname_signalname
# 自动找名字符合这个规范的槽函数进行绑定
QtCore.QMetaObject.connectSlotsByName(self)
# 方式1:
# def on_okBtn_clicked(self):
# print("方式1on_okBtn_clicked")
#方式2:
@QtCore.pyqtSlot()
def on_OkBtn_clicked(self):
print('第二个方式点击okButton')
@QtCore.pyqtSlot()
def on_CancelBtn_clicked(self):
print('第二个方式点击CancelBtn')
if __name__ == '__main__':
app = QApplication(sys.argv)
main = AutoSignalSlot()
main.show()
sys.exit(app.exec_())
