Подтвердить что ты не робот

Интеграция консоли Python в приложение GUI С++

Я собираюсь добавить виджет консоли python (в графический интерфейс С++) ниже некоторых других элементов управления: Python Console screenshot

Многие классы будут подвергаться воздействию кода python, включая некоторый доступ к GUI (возможно, я буду рассматривать PyQt).

Должен ли я запускать код Python в отдельном потоке?

Я думаю, что это хороший подход, потому что GUI не будет заморожен при выполнении длинных команд. Но, с другой стороны, не следует ли отключать другие элементы управления для сохранения состояния объектов и предотвращения конфликтов?

4b9b3361

Ответ 1

Поскольку вы, по-видимому, хотите внедрить интерпретатор Python для использования Python в качестве языка сценариев в том, что похоже на приложение Qt, я предлагаю вам взглянуть на PythonQt.

С помощью модуля PythonQt скрипты Python смогут взаимодействовать с графическим интерфейсом вашего хост-приложения.

В отличие от PyQt и Qt Jambi, PythonQt не предназначен для поддержки разработчиков, создающих автономные приложения. Вместо этого он предоставляет возможности для внедрения интерпретатора Python и фокусируется на том, чтобы упростить отображение частей приложения на Python.

Если я правильно понял ваши потребности, все, что вам нужно.

PyQt и PySide (официально поддерживаемый Nokia) нацелены на доступ к функциям Qt из программы Python путем предоставления привязок.

Возможно встроить PyQt в ваше приложение (даже приложение Qt), и ваши скрипты Python смогут предоставлять свой собственный графический интерфейс, в то время как взаимодействуя с вашим API сценариев приложений.

О безопасности потоков, Qt предлагает потокобезопасный способ публикации событий и соединения сигнальных слотов по потокам.

Литература: