python - 仅在关闭 tkinter 窗口后运行的功能
问题描述
我正在学习如何在 Python 中编程并使用 PIL(Pillow)来创建可以识别屏幕变化以执行重复命令(使用 pynput 模块的键盘按下)的小型机器人。
我使用 Tkinter 做了一个小型 GUI,以便获取有关用户在使用机器人时将使用的参数(条目小部件)的用户信息,我还需要一些按钮来启用/禁用代码的某些部分(我正在使用复选按钮并使用布尔逻辑来启用/禁用)以及启用机器人的主要功能(即一旦识别到屏幕上的某个变化就按下按钮)。
我目前遇到的是,一旦我运行我的程序,它会打开我的 GUI 以及用户会看到的所有内容,但它不会执行我的主功能,它只会在我关闭 GUI 后执行主功能。我很想发布我的代码,但它超过了 220 行,它可能会变得更加混乱。
那么,长话短说,当没有经验的程序员尝试使用 tkinter 创建软件时,这是一种经常发生的错误吗?如果是,是什么原因造成的,如何解决?
我很感激你们能给我的任何帮助。:]
...creates frames, widgets, entries...
mainHealerVar = IntVar()
main_healer_check = Checkbutton(root, text="Enable the bot", variable=mainHealerVar) #this should mean that when i press this checkbutton it'll enable the bot and perform the repetitive commands for as long as it stays checked
... some more buttons/code...
root.mainloop() #right after I stop setting up the GUI, I place this function
... make logic in order to know which part of the repetitive functions to execute...
if mainHealerVar.get() == 1:
mainHealFunction() #function to check if the checkbutton is still pressed (if it is, it should execute mainHealFunction()
它应该在我单击启用检查按钮后立即通过 pynput 模块执行重复命令,但在我关闭 GUI 之前它不会执行任何操作,然后它开始执行重复命令。我也尝试过使用 while 循环而不是最后的“if”,但最终得到了相同的结果。