Я собираюсь добавить консольный виджет Python (в GUI C++) ниже некоторых других средств управления:
Много классов будут выставленными коду Python, включая некоторый доступ к GUI (возможно, я рассмотрю PyQt).
Я должен выполнить код Python в отдельном потоке?
Я думаю, что это - хороший подход, потому что GUI не будет заморожен, в то время как выполнение долго управляет. Но с другой стороны, разве другие средства управления не должны быть отключены, чтобы сохранить состояние объектов и избежать конфликтов?
Так как вы, очевидно, хотите встроить интерпретатор Python для использования Python в качестве языка сценариев в то, что кажется приложением Qt, я предлагаю вам взглянуть на PythonQt.
С модулем PythonQt, скрипты на Python смогут взаимодействовать с графическим интерфейсом вашего приложения.
В отличие от PyQt и Qt Jambi, PythonQt не разработан для обеспечения поддержки разработчиков, пишущих автономные приложения. Вместо этого, он предоставляет средства для встраивания интерпретатора Python и фокусируется на том, чтобы сделать так, чтобы части приложения можно было легко экспонировать на Python.
Если я правильно понял ваши потребности, это всё, что вам нужно.
PyQt и PySide (официально поддерживается Nokia) нацелены на доступ к возможностям Qt из программы на Python путём предоставления привязки.
Возможно встроить PyQt в ваше приложение (даже в приложение Qt) и ваши скрипты на Python будут способны предоставить свой собственный GUI во время взаимодействия с API сценариев вашего приложения.
О потокобезопасности Qt предлагает потокобезопасный способ отправки сообщений о событиях, и соединения сигнальных слотов между потоками.
Ссылки: