Мне нужно запустить графический интерфейс из существующего приложения Python. Графический интерфейс на самом деле является отдельным графическим интерфейсом Python, который может работать отдельно. Прямо сейчас я запускаю графический интерфейс, используя что-то вроде:
res=Popen(['c:\python26\pythonw.exe',
full_filename,
str(RESULTs),
str(context)], stdout=PIPE).communicate()[0]
Где full_filename — это полный путь к графическому интерфейсу Python. Как видите, проблема в том, что мне нужно передать переменную RESULTS в GUI через командную строку. Это работает нормально до тех пор, пока командная строка не станет слишком длинной, и мне придется запаковать переменные в отдельный файл, а затем повторно загрузить их при запуске графического интерфейса. Это работает, но медленно.
Таким образом, я хочу каким-то образом запустить графический интерфейс из моего сценария Python, передать рассматриваемые переменные в графический интерфейс для его обработки, а затем зафиксировать результаты графического интерфейса обратно в вызывающем сценарии. Как вы можете видеть выше, в настоящее время это происходит через переменную res
, поскольку графический интерфейс можно настроить для записи своего вывода в стандартный вывод, который фиксируется в этой переменной.
Любые идеи? Я надеюсь, что кто-то может предложить более элегантный способ сделать это. Все это происходит на машине с WinXP.
2 ответа
Судя по всему, если превосходное предложение Назария для первого шага не является неосуществимым, такая программа, как pyWinAuto, делай что тебе нужно. Мы используем его для управления нашим собственным приложением на основе wxPython для использования в автоматизированном тестировании, при этом скрипт Python управляет программой, вводя текст в поля графического интерфейса, нажимая кнопки и т. д. Общий термин для этого — «автоматизация графического интерфейса», и вы можете найти много другой информации об этом, выполнив поиск. pyWinAuto — это единственный вариант, доступный в мире Python для этого, но он довольно хороший.
Приложение Python с открытым исходным кодом? Вы можете посмотреть, как сам графический интерфейс подключается к серверной части, и напрямую импортировать соответствующие модули в ваше приложение, а затем вызывать его так, как это сделал бы графический интерфейс, минуя этот беспорядочный хак.
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.