Запуск приложения PyQt4

#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:

Исправлено, одна проблема заключалась в том, что в тестовом коде на веб-сайте с учебным пособием действительно была ошибка, поэтому я нашел ее сам, и в коде моего проекта возникла проблема с импортом модуля, который был бесполезен и просто вызывал ошибки.