我最近发布了一个类似的问题,但在做了推荐的项目之后我遇到了类似的问题,但是代码发生了很大的变化,所以我认为最好看看干净的代码!
我正在制作一个非恶意的Twitch TV bot,可以在聊天中运行一些命令。我一直在使用机器人2个月,并决定创建一个小的GUI,以便在变量运行时对变量进行基本更改。 GUI和Bot都可以单独运行,但我遇到了让它们协同工作的问题。我一般都是线程和python的新手,所以我真正坚持如何解决这个问题。
我使用Tkinter创建GUI,它需要一个循环才能使窗口保持打开状态。因此,此循环将停止其余代码继续并启动机器人。我需要弄清楚如何保持循环运行,但还要继续运行Bot的其余部分并在GUI后面运行。
这是启动GUI的Bot的开始;
app = Geekster_Bot_GUI(None)
app.title('Geekster_Bot')
app.geometry('450x100')
app.mainloop()
然后继续连接到IRC的机器人。
如何在mainloop()
之后继续?
先谢谢了!
答案 0 :(得分: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保留在主线程中。