Как объединить логику Python и графический интерфейс Qt C++

Мне представили логику Python и графический интерфейс, написанный на C++ Qt, и попросили объединить их. Прежде чем я выберу маршрут повторной реализации графического интерфейса, например. PySide, я хотел бы знать, какой способ будет наиболее плавным для достижения такой комбинации. Предпочел бы я сделать графический интерфейс C++ доступным для логики Python (и уровня управления) или наоборот?

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

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


Это четкая перефразировка предыдущего вопрос, который я несколько неуклюже сформулировал, и поэтому упустил его цель.

Если вы просите учебник по PySide2 или PyQt5, то это явно не вопрос о переполнении стека.

Öö Tiib 28.01.2019 12:08

Это явно не учебный вопрос. Это вопрос о том, какие инструменты помогут мне достичь того, о чем меня просили, с какой стороны я должен взяться за это (сторона C++ или сторона Python) и как может выглядеть основная концепция решения (т.е. создать привязки для графического интерфейса к используйте его в Python! или Создайте привязки для логики, чтобы использовать его в C++ и т. д...)

LCsa 28.01.2019 12:15

Так что-то еще более широкое и глубокое, чем туториал? Книга? Это не улучшает ситуацию.

Öö Tiib 28.01.2019 12:24

Это немного зависит от того, что на самом деле представляет собой ваш Логика Python. Это готовое консольное приложение? Это функция для вызова? Вы можете запустить программу python как подпроцесс из своего графического интерфейса Qt. Вы также можете встроить интерпретатор Python для запуска вашего кода Python внутри вашего приложения C++. Может быть, попробуйте поподробнее описать, что на самом деле делает ваш Логика Python и как он называется. (Я проигнорировал возможность просто повторно реализовать код Python на C++.)

Scheff's Cat 28.01.2019 12:26

@Scheff Спасибо за попытку помочь. Я отредактировал небольшое пояснение. Логика Python на самом деле представляет собой очень ограниченное количество классов, предоставляющих методы обработки данных. По строкам «чтение данных», «выполнение БПФ», «вычисление XyzStuff» и т. д.; ничего слишком сложного.

LCsa 28.01.2019 13:13

Мы используем Python в качестве «макро» языка в нашем интерактивном приложении визуального моделирования C++/OpenGL/Qt-GUI. Были некоторые подводные камни, но в итоге работает неплохо. Мы встроили интерпретатор Python в наше приложение C++. Мы добавили в Python несколько объектов-капсул, чтобы можно было изменять объекты C++ из скриптов Python. Для этого мы не использовали никаких интерфейсных инструментов, а написали что-нибудь на C/C++ на основе документации Python. Расширение и встраивание интерпретатора Python (и некоторые поиски в Google для получения подробной информации).

Scheff's Cat 28.01.2019 13:58

@Scheff Спасибо, я посмотрю эту часть документации!

LCsa 28.01.2019 14:07
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
7
913
0

Другие вопросы по теме