Python:Python WX GUI 应用程序从控制台窃取焦点

标签 python linux console focus wxwidgets

我正在运行一个 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/

相关文章:

javascript - 代码可以在浏览器控制台中运行,但不能在 tampermonkey 中运行

python - 在线性回归中使用 PCA

arrays - 使用 random() [Swift, Linux] 打乱字符串数组

linux - Linux 中进程的线程堆栈

linux - 将 Git 存储库克隆到 LINUX 计算机时使用的 'standard' 目录位置是什么

regex - 对于多个文件中的每一行,提取包含 "XXXX ms"的行,其中 XXXX 是一个数字 > 到给定值

java - 如何清除java程序中的控制台?

python - Plotly-Dash : Want two stacked bar charts side by side from single df column

python - Django-filter 2 使用@property 进行过滤?

python - 如何将 numpy 与 cygwin 一起使用