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

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

0 голосов
/ 03 октября 2011

Хорошо, у меня есть два приложения, которые не будут запускаться сейчас: важное и тестовое, которое раньше использовалось для тестирования, но теперь оно говорит: AttributeError: 'StartQt4' object has no attribute 'filename'

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

Вот код запуска этого приложения:

Ссылка на код

Теперь, важное приложение для школьного проекта, я сделал это в PyQt и просто попытался запустить его с помощью этого кода: Код

Если вам нужен файл пользовательского интерфейса для второго кода, просто спросите, и я опубликую ссылку DL.

Мне бы очень хотелось, чтобы оба работали, скоро! И какие-нибудь советы по некоторым хорошим учебникам PyQt? Они также должны быть совместимы с Python 3 ...

Ответы [ 3 ]

0 голосов
/ 03 октября 2011

Ответ: исключение: у объекта 'StartQt4' нет атрибута 'имя файла'.

Просто добавьте атрибут 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)
0 голосов
/ 04 октября 2011

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

0 голосов
/ 03 октября 2011

Что вы поменяли между тем, что оно работает и не работает?

Для тестового кода, не зная, что делает класс Ui_LQNotepad, сложно сказать, но объекты QMainWindow не имеют атрибута filename, поэтому ваш код никогда не будет работать. Я подозреваю, что вы можете иметь в виду self.ui.filename, но я не могу с уверенностью сказать, что класс Ui_LQNotepad имеет атрибут filename. Найдите в своем коде filename, и вы увидите, что вы когда-либо читали только этот атрибут, но никогда не устанавливали его. Откуда это имя файла?

Мне не ясно, в чем разница между вашим тестовым приложением и основным кодом, они кажутся примерно одинаковыми, поэтому я думаю, что то же самое относится и к этому.

Обратите внимание, что в будущем будет полезно, если вы опубликуете полный отчет о трассировке, а также сообщение об исключении.

...