#python #tkinter
#python #tkinter
Вопрос:
Я создал код, который в основном вызывает скрипт для каждой нажатой кнопки, и на данный момент он, похоже, вылетает после нажатия одной кнопки. В фоновом режиме CMD выдает мне правильный вывод вызванного скрипта, но я не могу продолжать использовать графический интерфейс, поскольку он зависает при нажатии первой кнопки.
Знаете ли вы, кому продолжать использовать TKinter даже после завершения одного действия?
Пример кода:
import subprocess
import tkinter as tk
import os
from typing import List
root= tk.Tk()
canvas1 = tk.Canvas(root, width = 350, height = 350)
canvas1.pack()
def start_shell():
subprocess.call([r'[path]commandsadb_shell.bat'])
button1 = tk.Button (root, text='Start shell',command=start_shell,)
canvas1.create_window(170, 170, window=button1)
def start_ruleset():
subprocess.call([r'[path]commandsruleset.bat'])
button2 = tk.Button (root, text='nft flush ruleset',command=start_ruleset,)
canvas1.create_window(55, 17, window=button2)
root.mainloop()
Комментарии:
1. Программа, которую вы запускаете, по-видимому, не завершится в ближайшее время — возможно, для ее завершения требуется ввод данных пользователем. Чтобы избежать блокировки вашего кода, вам нужно запустить его таким образом, чтобы не ждать завершения процесса
subprocess.Popen()
, например.2. Большое спасибо за помощь, это решило мою проблему! 🙂