我不再是Python的“新手”了,但我现在正在进入一个未知领域。 最近我正在解析一些找到的here逻辑电路代码。我从这段代码中学到了很多关于继承的实际用法。好东西。
在更改门上的输入之前,此代码中没有太多发生,因此必须使用解释器来操作输入。我厌倦了使用解释器,所以我研究了创建一个不会重新运行初始代码的连续循环的方法。
我发现Tkinter使用了一个连续循环,然后我可以用“after”方法中断它来更新当前运行代码的一些参数。
这很有效,但我很好奇是否有另一种和/或更好的方法。有人知道其中一个吗?
部分代码:
tk_TkGUI = Tk()
f_AndTest() ## Initialize the 'And' gate
tk_TkGUI.after(1000, f_ChangeAnInput) ## Invokes Tk 'after' method to update an input
tk_TkGUI.mainloop() ## Must be used in Windows with Tkinter
def f_ChangeAnInput():
A1.B.set(0) ## Change A1.B from 1 to 0
答案 0 :(得分:1)
如果你想要一个窗口,以这种方式使用Tkinter是完全没问题的。
顺便说一下,after
并没有像你描述的那样中断循环。主循环简单地循环遍历事件队列并按顺序处理它们。当它到达终点时,它会等待更多事件。就像按键或移动鼠标一样,after
只是将一些东西放入队列中以便稍后处理。它真的是那么简单。
答案 1 :(得分:0)
你可以使用线程。
import thread
def blaH:
#All your code that isn't related to your tkinter stuffs in here
thread.start_new_thread(blaH,())
唯一的问题是你需要两种线程相互交流的新方法,例如global variables。