python - Python tkinter GUI 应用程序变得无响应
问题描述
我有一个 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()
输出如下:
现在,当我从下拉列表中选择一个元素并单击单击按钮时,如果 id < 10 否则进度条停止,我应该启动进度条。因此,当进度条停止时,输出窗口变得无响应并崩溃。我正在一个线程中开始进度。不明白为什么当进度条停止时它变得无响应。
解决方案
推荐阅读
- c# - 如果 c# 中的整数值为 0,则忽略对象的属性
- hybris - 如何在 hybris 中更改同步工作人员数量
- chart.js - 如何在一个标题内的 Charts.js 中插入多个值?
- powershell - AD 不复制新组,因此我可以授予它访问文件夹的权限
- cmake - cmake pre-build 命令从外部存储库复制文件
- spring - 即使我添加了所需的依赖项,也无法使用 uri http://www.springframework.org/tags/form 解析 taglib
- mongodb - 我可以在 jhipster 中使用 SQL 数据库(mysql)作为 devdatabaseType 和 NoSQL(mongodb)作为 prodDatabaseType
- matlab - 如何在 Matlab 中为不断连接的数组预分配内存?
- c# - 如何通过 DateTime 的 C# 驱动程序在 MongoDB 集合中找到一个条目?
- javascript - jquery 提到带有新生成元素的输入