Ошибка PyQT4: QWidget: должен создать QApplication перед QPaintDevice [дубликат]

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

3
задан bricky149 15 October 2013 в 17:18
поделиться

2 ответа

Боюсь, что одного файла недостаточно в этой ситуации - поток выполнения не ясен только из этого одного модуля. Обычно это сообщение появляется, когда вы пытаетесь использовать некоторые ресурсы / создавать некоторые объекты, для которых, например, требуется инициализированный QApplication - например, QIcon.

Мгновенное создание приложения с графическим интерфейсом на основе Qt обычно выглядит так:

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    main_window = MainWindowClass()
    main_window.show()
    sys.exit(app.exec_())
6
ответ дан AlexVhr 19 August 2018 в 20:01
поделиться
  • 1
    Я попытаюсь использовать отладчик, чтобы найти соответствующий бит кода в Eclipse, как это было предложено. – bricky149 15 October 2013 в 16:04
  • 2
    BTW, вы создали приложение = QApplication (), но никогда не вызывали app.exec_ (), поэтому приложение никогда не входило в основной цикл. – AlexVhr 15 October 2013 в 16:07

Сообщение об ошибке довольно ясно: вы пытаетесь нарисовать QWidget (который в PyQt4.5 наследует QPaintDevice и QObject), прежде чем вы создадите экземпляр QApplication. Но ваш код слишком велик для чтения по строкам. Попытайтесь изолировать ошибку, создавая небольшое приложение и добавляя функциональность шаг за шагом. Или используйте отладчик (предполагается, что IDE, такие как Eclipse + PyDev, могут отлаживать ваше приложение). Или предоставим нам небольшой, самодостаточный пример проблемы.

1
ответ дан Vicent 19 August 2018 в 20:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: