Интеграция консоли Python в приложение GUI C ++ - PullRequest
25 голосов
/ 10 января 2010

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

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

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

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

1 Ответ

13 голосов
/ 10 января 2010

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

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

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

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

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

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

Что касается безопасности потоков, Qt предлагает поточно-безопасный способпубликация событий и соединений слотов сигналов между потоками.

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...