如何在Tkinter的mainloop()后继续?
我正在制作一个无害的Twitch TV机器人,它可以在聊天中执行一些命令。我已经使用这个机器人两个月了,决定为它创建一个小的图形界面(GUI),以便在运行时可以简单地修改一些变量。这个图形界面和机器人单独运行都没问题,但我遇到了让它们一起工作的困难。
我使用了Tkinter
来创建这个图形界面,它需要一个循环来保持窗口打开。这个循环会阻止其他代码继续执行,从而无法启动机器人。我需要找到一种方法,让这个循环保持运行,同时也能继续执行机器人的其他部分,并在图形界面后面运行它。
这是机器人启动时连接图形界面的代码;
app = Geekster_Bot_GUI(None)
app.title('Geekster_Bot')
app.geometry('450x100')
app.mainloop()
然后它会继续连接到IRC(互联网中继聊天)。
我该如何在mainloop()
之后继续呢?
1 个回答
0
你可以使用 threading(线程)或者 multiprocessing(多进程)。这里有个简单的例子:
import Tkinter
import threading
def create_frame():
MessFrame = Tkinter.Tk()
MessFrame.geometry('800x400+200+200')
MessFrame.title('Main Frame')
Framelabel = Tkinter.Label(MessFrame, text='Text Here', fg= 'red')
Framelabel.place(x=10,y=10)
MessFrame.mainloop()
t1 = threading.Thread(target=create_frame)
t1.start()
#continue
print 1234
不过...通常来说,最好把图形用户界面(GUI)放在主线程里。