【发布时间】:2017-03-19 20:12:39
【问题描述】:
我构建了一个 PyQt 界面,现在我想切换它的一些小部件的活动/非活动状态,或者从小部件类外部与它们进行交互。
我有一个包含所有小部件的主窗口类,以及类之外的函数——这里连接到buttton1。在此示例中,我的目标是通过按 button1 启用 button2。
使用下面的代码,我得到Ui_MainWindow 类没有属性button1 的错误。
代码:
from PyQt4 import QtCore, QtGui
def toggle():
Ui_MainWindow.button2.setEnabled(True)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
self.button1 = QtGui.QPushButton(self.centralwidget)
self.button1.clicked.connect(toggle)
self.button2 = QtGui.QPushButton(self.centralwidget)
self.button2.setEnabled(False)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
直到知道我避免使用类,因为老实说,它们对我来说非常抽象。我想这就是我在这里失败的原因。我想我以错误的方式访问小部件类。
如果有人能指出我正确的方向,我将不胜感激。我阅读了所有类似问题的答案 - 但它并没有帮助我找到解决方案。
【问题讨论】:
标签: python pyqt pyqt4 signals-slots qwidget