Преобразование существующего сценария командной строки в графический интерфейс в Python - PullRequest
2 голосов
/ 29 марта 2012

Это может показаться глупым вопросом, но я думаю, что может быть простое решение этой проблемы. У меня есть скрипт на Python, который выполняет математические вычисления на основе командной строки. Я не хочу вносить каких-либо серьезных изменений в код, который у меня есть сейчас. Каким должен быть мой подход сейчас к созданию GUI (я использую wxpython), который использует этот скрипт в качестве своей модели, оставляя модель функционировать как автономный скрипт на Python, как и сейчас. Я знаю, что это вопрос наследования и полиморфизма, но мне не ясно, какой подход я должен использовать. Любые рекомендации будут с благодарностью.

Ответы [ 2 ]

1 голос
/ 29 марта 2012

Допустим, ваш исполняемый файл командной строки:

% compute -flag1 -flag2 выходной файл данных

В WxPython вы можете использовать флажки для выбора использования флагов1 и / или флаг2виджет выбора файлов для файла данных, поле ввода текста для выходного файла и кнопка «выполнить».При нажатии кнопки «Выполнить» создайте командную строку в строке и передайте ее одному из методов в модуле подпроцесса.

1 голос
/ 29 марта 2012

Это зависит от качества вашего инструмента командной строки. По сути, если он написан «правильно», он включает в себя свои функции в некоторых функциях или классах, которые можно использовать в других сценариях, то есть вы можете импортировать и использовать их без проблем. Затем «основная» часть инструмента командной строки анализирует аргументы командной строки и вызывает эти функции / классы. Если все верно, то вы, очевидно, можете импортировать свою функциональность в приложение на основе графического интерфейса и использовать ее.

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

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