[英]How to execute a command with a button and delete it before the command ends ? Python / Tkinter
我有一个界面,其中有一个“开始”按钮。 它运行一个“主”命令,在那里它启动一个循环以在功率计上运行一些测量。 我希望能够在每次测量准备完成时单击“确定”按钮。 此按钮将取代“开始”按钮。
但是当我尝试销毁按钮( buttonStart.destroy()
)然后运行命令main()
,该命令会执行但直到最后才删除按钮。 我试过使用 threading 包中的线程,但它并没有真正起作用。
如果有一种方法既可以销毁按钮又可以运行命令,我会非常感兴趣!
非常感谢
事件循环必须有机会处理事件,以便将窗口从屏幕上移除。
有几种方法可以做到这一点。 第一个是在任何小部件上调用update_idletasks
方法。 这通常足以处理与小部件销毁相关的事件,尽管可能需要调用update
来代替。 如果可能,应避免调用update
。 我的经验法则是从update_idletasks
开始。 如果这不起作用,请切换到update
或切换到使用after
。
def my_custom_function():
startButton.destroy()
root.upddate_idletasks()
main()
第二种方法是通过after
或after_idle
运行你的main
函数。 这将使 tkinter 在启动main
之前自然地处理所有挂起的事件。 我认为这是最好的方法。 我建议先尝试after_idle
,如果这不起作用,请after_idle
延迟after
切换到after
。
def my_custom_function():
startButton.destroy()
root.after_idle(main)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.