我不知道您是从哪里知道“ PyQt5改变了整个“将连接按钮插入插槽”的工作原理”的想法,但这完全是完全错误的。从官方PyQt文档中可以很容易地看出,没有任何变化:
但是,即使不阅读任何文档,也很容易为自己进行测试。例如,在以下脚本中,只需在前两行切换注释,它将以相同的方式运行:
# from PyQt5.QtWidgets import (
from PyQt4.QtGui import (
QApplication, QWidget, QV@R_294_2419@Layout, QPushButton, QLabel,
)
class Window(QWidget):
def __init__(self):
super(Window, self).__init__()
self.button = QPushButton('Test', self)
self.label = QLabel(self)
self.button.clicked.connect(self.handleButton)
layout = QV@R_294_2419@Layout(self)
layout.addWidget(self.label)
layout.addWidget(self.button)
def handleButton(self):
self.label.setText('Button Clicked!')
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
至于其他要点:在您当前的知识状态下,我可以说您可以放心地忽略connectSlotsByName
和pyqtSlot
。尽管它们有其用途(有关详细信息,请参见上面的文档),但几乎没有真正需要在95%的应用程序中使用它们。
对于您的特定情况,语法很简单:
self.testButton.clicked.connect(self.change_text)
...
def change_text(self):
self.ui.testLabel.setText("Button Clicked!")