У меня есть приложение tkinter python:
from tkinter import *
from tkinter.ttk import *
from tkinter.ttk import Progressbar
from tkinter import ttk
import tkinter as tk
import tkinter.ttk, threading
tkk = Tk()
tkk.title("sample")
tkk.geometry('350x200')
number= tk.StringVar()
choice= Combobox(tkk, width=12, textvariable=number)
choice.grid(column=0,row=1)
class progress():
def __init__(self, parent):
self.progressbar = ttk.Progressbar(tkk, orient = HORIZONTAL, mode = 'indeterminate')
self.t = threading.Thread()
self.t.__init__(target = self.progressbar.start, args = ())
self.progressbar.grid(row=4,columnspan=6,sticky=W+E,padx=(40,10))
self.t.start()
def end(self):
self.progressbar.stop()
self.t.join()
def click():
action.configure(text="chosen case is : "+ selected.get())
print("clicked button is :")
id = 0
while id < 10:
progress(tkk)
id+=1
else:
new=progress(tkk)
new.end()
action = ttk.Button(tkk, text="Click", command=click)
action.grid(column=1,row=1)
selected= ttk.Combobox(tkk, width=12, textvariable=number)
selected['values']=('a','b','c','d')
selected.grid(column=0,row=1)
selected.current()
tkk.mainloop()
Вывод:
Теперь, когда я выбираю элемент из выпадающего меню и нажимаю кнопку «Мне», я должен получить индикатор выполнения, если идентификатор <10, индикатор выполнения остановлен.
Поэтому, когда индикатор выполнения останавливается, окно вывода перестает отвечать на запросы и вылетает. Я начинаю прогресс в потоке.
Не понимаю, почему он перестает отвечать при остановке индикатора выполнения. </p>