#python #user-interface #tkinter #exe
Вопрос:
У меня есть EXE-файл, который запрашивает приглашение ms-dos и запрашивает несколько входных параметров, которые могут быть предоставлены либо как входные данные по одному (var1 —> ввод, var2 —>> ввод и т. Д.), Либо в виде массива. Затем он производит некоторые вычисления и создает TXT-файл в качестве выходного.
Я хочу запустить EXE-файл с python и предоставить входные параметры через графический интерфейс на python в приглашение ms-dos (это моя главная задача) и запустить моделирование (с помощью кнопки «Пуск» в графическом интерфейсе). Есть идеи? Возможно ли это?
Вот с чего я начал:
import os
from Tkinter import Tk # from tkinter import Tk for Python 3.x
from tkinter.filedialog import askopenfilename
Tk().withdraw() # we don't want a full GUI, so keep the root window from appearing
filename = askopenfilename("file.exe") # show an "Open" dialog box and return the path to the selected file
os.system(filename)
Комментарии:
1. Для входных параметров вам придется самостоятельно разработать графический интерфейс. Для его разработки потребуется немного работы, и не похоже, что это хороший вопрос о стековом потоке. Если у вас есть конкретный
tkinter
вопрос, я буду рад попытаться ответить на него.2. @TheLizzard спасибо за отзыв. на самом деле моя главная забота-это входные параметры. не могли бы вы дать мне какую-нибудь справку? Я бы хотел сделать снимок. Спасибо
3. Я не знаю никаких готовых пакетов, которые вы могли бы использовать для этой части графического интерфейса, но я рекомендую ознакомиться с некоторыми
tkinter
учебными пособиями. После этого, если у вас есть конкретный вопрос, задавайте. Вопрос прямо сейчас слишком широк для stackoverflow.4. Я согласен с @TheLizzard, это был бы отличный способ научиться пользоваться
tkinter
, потому что то, что вы хотите сделать, относительно просто. По сути, все, что вам нужно, — это одно окно с некоторыми полями ввода и кнопкой «Отправить», чтобы запустить EXE-файл и передать ему входные значения, введенные пользователем.5. Этот учебник называется » Простая регистрационная форма с использованием Python Tkinter «. Похоже, это даст вам хорошее начало. В Интернете есть много других, если вы поищете их в Google.
Ответ №1:
Подпроцесс
import subprocess
subprocess.check_call([r"tools/external_tools/mintty.exe", "-t", "Terminal", "-i", "icon.ico"])
# subprocess.check_call([r".exe", "argument", "argument_parameter"])
Если это реализовано таким образом, то при каждом запуске программа перестанет отвечать на запросы. Поэтому рекомендуется делать это с помощью резьбы
С Нарезанием Резьбы
import subprocess
import threading
def custom_terminal():
subprocess.check_call([r"tools/external_tools/mintty.exe", "-t", "Terminal", "-i", "icon.ico"])
threader = threading.Thread(target=custom_terminal)
threader.start()