Я создал интерфейс PyQt, и теперь я хочу переключать активное/неактивное состояние некоторых его виджетов или взаимодействовать с ними вне класса виджетов. У меня есть класс главного окна со всеми его виджетами и функциями вне класса - здесь подключен к buttton1
. Моя цель в этом примере — включить button2
, нажав button1
.
В приведенном ниже коде я получаю сообщение об ошибке, что мой класс 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_())
Пока не знаю, я избегал использования классов, потому что, честно говоря, они для меня очень абстрактны. Наверное, поэтому я терплю неудачу здесь. Я предполагаю, что неправильно обращаюсь к классу виджетов.
Я был бы признателен, если бы кто-то мог указать мне в правильном направлении. Я прочитал все ответы на подобные проблемы - но это не помогло мне прийти к решению.