【发布时间】:2013-11-26 18:41:33
【问题描述】:
好的,几乎每个教程/可理解的人类语言文档都是针对 PyQt4 的。但是,PyQt5 改变了整个“连接按钮到插槽”的工作方式,我仍然不知道该怎么做。
我在 QtDesigner 中做了一个快速的 gui,我有一个 QPushButton 和一个标签。当我单击按钮时,我希望标签上的文本发生变化。在 QtDesigner 中的 C++ 中,很容易将两者联系起来。但是我必须全部用python编写。
我将带有 pyuic5 的 .ui 文件转换为 .py 文件。在那里,在 Ui_MainWindow 类中,我可以看到 setupUi 方法,该方法初始化 self.button 如下
self.testButton = QtWidgets.QPushButton(self.centralWidget)
self.testButton.setObjectName("newGame")
然后,在方法结束时,
QtCore.QMetaObject.connectSlotsByName(MainWindow)
被调用,但是,老实说,我不知道它做了什么以及它连接到哪里。
在Main类中,继承自QMainWindow,我写了如下方法
@pyqtSlot(name='change')
def change_text(self):
self.ui.testLabel.setText("Button Clicked!")
我不知道如何将按钮信号连接到该插槽。在 pyqt4 中,我可以通过 button.clicked.connect(self.change_text) 手动设置它,但正如我发现的那样,PyQt5 已经过时并放弃了这种简单的设置。
请问,谁能帮我解决这个问题?
【问题讨论】:
标签: python qt signals-slots pyqt5