2010-01-10 3 views
25

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

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

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

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

+7

одна картина стоит +1. Однако вопрос тоже хорош. – balpha

+1

Да, фото воодушевляет! –

ответ

13

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

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

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

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

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

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

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

Ссылки:

Смежные вопросы