【发布时间】:2016-03-01 18:57:16
【问题描述】:
我在学习使用 Tkinter 时编写了一些代码,当我尝试线程化它时,它没有显示窗口,但是当它只运行主循环时它会显示。
import socket,threading,time
from Tkinter import *
class Chat(Frame):
def __init__(self,root):
Frame.__init__(self,root)
self.text=Text(self, bg='black', fg='white')
self.text.configure(state=DISABLED)
self.text.configure(state=NORMAL)
self.text.insert(END, 'hello\n'*40)
self.text.configure(state=DISABLED)
self.text.pack()
def main():
root=Tk()
root.configure(background='black')
c=Chat(root)
c.pack()
root.mainloop()
#t=threading.Thread(target=root.mainloop)
#t.start()
if __name__=='__main__':
main()
这似乎是文本小部件的问题,但我不知道它有什么问题。当我删除插入行时,该框会出现带有 trheading 但该行不会出现。它有什么问题?
【问题讨论】:
-
在新线程中到底想做什么?
-
@cdonts 我想将主循环作为线程启动,这样我就可以在 tkinter 窗口启动时让程序执行其他操作。
-
相反,您应该在主线程中运行 mainloop,并在程序需要执行其他操作时启动新线程。
标签: python multithreading tkinter