Приложение Python tkinter GUI перестает отвечать на запросы - PullRequest
0 голосов
/ 03 июля 2018

У меня есть приложение 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>

...