我有一个小型 GUI 应用程序,用于侦听网络消息,以便用户可以更新一些信息并接受它。这是在生产工厂环境中,用于与特定的物理硬件进行交互(在某些情况下通过串行)。工作流程如下所示:
- 用户正在与另一个程序交互(5250 绿屏)
- 他们输入某个键绑定,将 UDP 消息发送到 Tkinter GUI
- Tkinter GUI 执行 deiconify()
- 用户编辑数据,接受 (Enter) 并执行 iconify()
我的问题是,在 Windows XP 上,当我执行 deiconify 时,GUI 不会变为活动状态,相反,它不会退回到 iconify 上的前一个窗口。我尝试了一些我在其他问题中发现的东西,例如:
- 将 Tk GUI 设置为顶部..
self.wm_attributes("-topmost", 1)
- 试图设置/强制焦点......
self.focus_set()
和self.focus_force()
虽然第一个窗口是可见的,但我似乎无法让它成为活动窗口,以便用户可以在不“单击”它的情况下输入它来激活。释放“焦点”也是如此,以便活动窗口变为它们之前所在的窗口(5250)。
这似乎是其他人也遇到过的问题,但我找不到任何有效的方法。是否有一种编程方式来激活窗口并在完成后释放它?