首页 > 解决方案 > 仅在关闭 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”,但最终得到了相同的结果。

标签: pythonpython-3.xtkinterpython-imaging-library

解决方案


推荐阅读