簡體   English   中英

Python:Python WX GUI應用程序從控制台竊取了焦點

[英]Python: Python WX GUI app from stealing focus from console

我正在運行一個Python控制台應用程序(Linux控制台,用Python編寫的應用程序),作為運行的一部分,Python GUI(wx)子進程在許多不同的地方啟動。 有什么方法可以讓wx GUI啟動而不會從控制台上竊取焦點,以便用戶可以不間斷地繼續使用控制台應用程序? 從Python GUI應用程序端,啟動GUI端的控制台應用程序還是從Linux端,有什么方法可以防止這種情況發生?

謝謝

在圖形界面方面,Linux是一個特別多樣化的系統。 除了數十種GUI工具包和框架之外,至少還有十二種常用的窗口管理器-它們是控制焦點的系統的一部分。

好消息是,有一個標准: 擴展窗口管理器提示

盡管我不會假裝沒有讀完所有這些內容,但是我認為您不能無條件地阻止將焦點更改到新窗口中-這樣做有很多充分的理由。

可以做的就是在完成后簡單地將焦點移回到控制台上-如果有可靠的方法來識別它,例如PID或窗口名。 您可能要簽出wmctrl ,這是一個可以與實現EWMH標准的任何窗口管理器進行交互的工具。 例如,您可以使用subprocess與之交互。

我發現了一種至少在Windows中有效的hack,您可以在Linux上嘗試。 在顯示新框架之前,請將其禁用。

frame.Disable()
frame.Show()
frame.Enable()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM