我正在使用tkinter编写一个应用程序,当按下按钮时,该应用程序将连接到sql DB并运行sql查询。我遇到了这样一个问题:当sql querys方法运行时,GUI会说“没有响应”,当它完成时,它会恢复正常。我决定将sql查询放在它自己的线程中,将tkinter的主循环放在它自己的线程中,但它根本不工作
def createGUI():
window = Tk()
window.title("Recon Report Generator")
lbl=Label(window, text="Enter Recon File Below", fg='blue', font=("Helvetica", 16))
lbl.place(x=90,y=50)
textBox=Entry(window, text="This is Entry Widget", bd=5)
textBox.place(x=135, y=100)
button=Button(window, height=1, width=15, text="Find Missing",
command=lambda: retrieve_input(textBox,lbl))
button.place(x=140, y=150)
window.geometry("400x400")
window.resizable(False, False)
_thread.start_new_thread(window.mainloop(), (0,))
这是我的GUI,我将主循环放在线程0中
这里呢
def retrieve_input(textBox,lbl):
detFile = "'"+(textBox.get())+"'"
lbl.place(x=140,y=50)
lbl.config(text="Enter Recon File Below")
_thread.start_new_thread(runDatabaseQuerys(detFile), (1,))
lbl.config(text="Finished...")
print("Finished Please check file")
我将sql查询运行方法放在线程1中,它们是独立线程,但我仍然得到“无响应”
我很长一段时间都在讨论这个问题,直到我在stackoverflow上找到了关于使用多线程的答案
Tkinter window says (not responding) but code is running
您需要为sql查询函数创建一个线程,如下所示
相关问题 更多 >
编程相关推荐