#python #pyqt4
#python #pyqt4
Вопрос:
Хорошо, итак, у меня есть два приложения, которые сейчас не будут запускаться, важное и тестовое, тестовое, которое использовалось для запуска, но теперь оно говорит: AttributeError: 'StartQt4' object has no attribute 'filename'
Итак, я понятия не имею, почему это происходит, и это происходит только тогда, когда я пытаюсь использовать либо функцию сохранения, либо функцию открытия.
Вот код запуска для этого приложения:
Теперь важное приложение предназначено для школьного проекта, я создал его в PyQt и просто попытался запустить его, используя этот код: Code
Если вам нужен файл пользовательского интерфейса для второго кода, просто спросите, и я отправлю ссылку DL.
Я бы хотел, чтобы оба из них работали в ближайшее время! И какие-нибудь советы по некоторым хорошим учебным пособиям по PyQt? Они также должны быть совместимы с Python 3…
Ответ №1:
Что вы изменили между его работой и неработоспособностью?
Трудно сказать, что касается тестового кода, не зная, что Ui_LQNotepad
делает класс, но QMainWindow
объекты не имеют filename
атрибута, поэтому ваш код, как указано, никогда не будет работать. Я подозреваю, что вы можете иметь self.ui.filename
в виду, но я не могу с уверенностью сказать, что у Ui_LQNotepad
класса есть filename
атрибут. Выполните поиск в своем коде filename
, и вы увидите, что вы только когда-либо читали этот атрибут, вы никогда его не устанавливали. Откуда должно быть взято это имя файла?
Я не совсем понимаю разницу между вашим тестовым приложением и основным кодом, они кажутся практически одинаковыми, поэтому я думаю, что то же самое относится и к этому.
Пожалуйста, не думайте, что в будущем будет полезно опубликовать полную обратную трассировку, а также сообщение об исключении.
Ответ №2:
Ответ находится в исключении: объект ‘StartQt4’ не имеет атрибута ‘filename’.
Просто добавьте filename
атрибут в свой __init__
.
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_LQNotepad()
self.ui.setupUi(self)
QtCore.QObject.connect(self.ui.button_open,QtCore.SIGNAL("clicked()"), self.file_dialog)
QtCore.QObject.connect(self.ui.button_save,QtCore.SIGNAL("clicked()"), self.file_save)
QtCore.QObject.connect(self.ui.charInput,QtCore.SIGNAL("textChanged()"), self.enable_save)
self.filename = ""
self.ui.button_save.setEnabled(False)
Ответ №3:
Исправлено, одна проблема заключалась в том, что в тестовом коде на веб-сайте с учебным пособием действительно была ошибка, поэтому я нашел ее сам, и в коде моего проекта возникла проблема с импортом модуля, который был бесполезен и просто вызывал ошибки.