QWidget: должен построить QApplication перед ошибкой python QWidget [дублировать]

Связанный .lib-файл связан с .dll

У меня была такая же проблема. Скажем, у меня есть проекты MyProject и TestProject. Я эффективно связал файл lib для MyProject с TestProject. Однако этот файл lib был создан, так как была построена DLL для MyProject. Кроме того, я не содержал исходный код для всех методов в MyProject, но только доступ к точкам входа DLL.

Чтобы решить проблему, я построил MyProject как LIB и связал TestProject с этим .lib-файлом (скопируйте вложенный файл .lib в папку TestProject). Затем я смогу снова создать MyProject как DLL. Он компилируется, поскольку lib, с которым связан TestProject, содержит код для всех методов в классах MyProject.

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 24 August 2018 в 01:20
поделиться

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

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

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