将焦点设置在 Tkinter 窗口上(取决于平台?)
我有一个 Tkinter 程序,运行它的方式如下: python myWindow.py
启动它一切正常,但窗口位于我用来启动它的终端后面。
有没有办法让它抓住焦点并成为前台应用程序?这取决于平台吗?
I have a Tkinter program and running it like: python myWindow.py
starts it all right, but the window is behind the terminal that I use to start it.
Is there a way to make it grab the focus and be the foreground application? Does it depend on the platform?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这可能是您的特定窗口管理器的一个功能。要尝试的一件事是让您的应用在创建所有小部件后在启动时调用
focus_force
。This might be a feature of your particular window manager. One thing to try is for your app to call
focus_force
at startup, after all the widgets have been created.您在脚本末尾尝试过这个吗?
Have you tried this at the end of your script ?
这在某种程度上是网上找到的各种其他方法的组合,适用于 OS X 10.11 和在 venv 中运行的 Python 3.5.1,并且也应该适用于其他平台。在 OS X 上,它还通过进程 ID 而不是应用程序名称来定位应用程序。
您可以在
mainloop()
调用之前调用它,如下所示:Somewhat of a combination of various other methods found online, this works on OS X 10.11, and Python 3.5.1 running in a venv, and should work on other platforms too. On OS X, it also targets the app by process id rather than app name.
You call it right before the
mainloop()
call, like so: