我正在运行一个 Python 控制台应用程序(Linux 控制台,用 Python 编写的应用程序),作为运行的一部分,Python GUI (wx) 子进程在许多不同的地方启动。有什么方法可以让 wx GUI 启动而不从控制台窃取焦点,以便用户可以不间断地继续使用控制台应用程序?有什么方法可以防止这种情况发生,无论是从 Python GUI 应用程序端,从启动 GUI 端的控制台应用程序,还是从 Linux 端?
谢谢
最佳答案
就图形界面而言,Linux 是一个特别多样化的系统。除了几十个 GUI 工具包和框架之外,至少还有十几个常用的窗口管理器 - 它们是系统中控制焦点的部分。
好消息是有一个标准:Extended Window Manager Hints .
虽然我不会假装已经阅读了所有这些内容,但我认为您不能无条件地阻止将焦点更改到新窗口 - 这样做有很多充分的理由。
您可以做的只是在完成后将焦点转移回您的控制台 - 如果有可靠的方法来识别它,例如 PID 或窗口名称。您可能想查看 wmctrl
,这是一个可以与任何实现 EWMH 标准的窗口管理器交互的工具。例如,您可以使用 subprocess
与它交互。
关于Python:Python WX GUI 应用程序从控制台窃取焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26978840/