Я изучаю pyqt5 и, в частности, как его использовать с QT Designer.Я как бы слежу за турориалом ЗДЕСЬ .Однако в этом уроке они конвертируют интерфейс XML в код Python с помощью pyuic5, а я пытаюсь импортировать его динамически с помощью uic.loadUi ("myui.ui") .В руководстве мы определяем слот с редактором сигналов и слотов с именем " browseSlot ".Когда я пытаюсь запустить / скомпилировать, в строке
dlg = uic.loadUi ("myui.ui")
я получаю ошибку:
AttributeError: у объекта 'QMainWindow' нет атрибута 'browseSlot'
Я думаю, что происходит то, что QT Designer подключает сигнал к слоту 'browseSlot', но потому что 'browseSlot'Метод не определен в myui.ui, выдается ошибка, потому что интерпретатор не может узнать, что я имею в виду метод, который находится за пределами файла интерфейса UI.(В этом случае в модуле, который загружает интерфейс).Насколько я могу судить, QT Designer позволяет мне подключать сигналы только к слотам, а не определять совершенно новый.Я думаю, что способ, которым это обрабатывается в других средах, заключается в том, что будет абстрактный метод, который нуждается в перегрузке.Итак, что я могу сделать в этой ситуации, чтобы заставить его работать?
from PyQt5 import QtCore, QtGui, QtWidgets, uic
from PyQt5.QtCore import QObject, pyqtSlot
import sys
app = QtWidgets.QApplication([])
dlg = uic.loadUi("myui.ui")
@pyqtSlot
def returnPressedSlot():
pass
@pyqtSlot
def writeDocSlot():
pass
@pyQt
def browseSlot():
pass
dlg.show()
sys.exit(app.exec())