Сбой графического интерфейса Tkinter после нажатия одной кнопки с помощью Py3

#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. Большое спасибо за помощь, это решило мою проблему! 🙂