Python Tkinter在Windows XP上激活窗口
我有一个小型GUI应用程序,可以监听网络消息,这样用户就可以更新一些信息并接受它。这是在生产工厂环境中,用于与特定物理硬件进行交互(在某些情况下通过串行方式)。工作流如下所示:Python Tkinter在Windows XP上激活窗口,python,python-3.x,tkinter,python-3.4,Python,Python 3.x,Tkinter,Python 3.4,我有一个小型GUI应用程序,可以监听网络消息,这样用户就可以更新一些信息并接受它。这是在生产工厂环境中,用于与特定物理硬件进行交互(在某些情况下通过串行方式)。工作流如下所示: def activate_self(self): """ Activate this window. """ shell = win32com.client.Dispatch('WScript.Shell') shell.AppActivate(str(self.title)) shell
def activate_self(self):
""" Activate this window. """
shell = win32com.client.Dispatch('WScript.Shell')
shell.AppActivate(str(self.title))
shell = None
- 用户正在与另一个程序交互(5250绿色屏幕)
- 它们输入一个向Tkinter GUI发送UDP消息的特定键绑定
- Tkinter GUI执行一个deiconify()
- 用户编辑数据,接受(输入)并执行图标化()
- 将Tk GUI设置为top<代码>self.wm\u属性(“-top”,1)
- 正在尝试设置/强制聚焦
和self.focus\u set()
self.focus\u force()
这似乎是一个其他人也有过的问题,但我没有找到任何有效的方法。是否有一种编程方法可以激活窗口并在完成后释放它?不幸的是,一周后没有答案,我无法找到一种直接的方法来使用Tkinter。不过,我确实找到了解决问题的方法,而且似乎一直有效。以下是我为激活屏幕所采取的步骤:
- 安装pywin32
- 创建一个激活tk应用程序的函数
- 创建激活5250的功能
def activate_self(self):
""" Activate this window. """
shell = win32com.client.Dispatch('WScript.Shell')
shell.AppActivate(str(self.title))
shell = None
激活调用者的代码有点难看,因为它必须猜测标题,但基本概念相同