簡體   English   中英

Windows上的Qt :: X11BypassWindowManagerHint功能

[英]Qt::X11BypassWindowManagerHint functionality on Windows

我目前正在開發跨平台的虛擬鍵盤。 在linux中,我可以做任何我想做的事,但是在Windows中,我在阻止小部件獲得鍵盤焦點方面遇到了問題。

在linux中,使用window標志

Qt::X11BypassWindowManagerHint

該小部件從不獲取鍵盤輸入,但是該標志在Windows上不起作用

是否有與該標志等效的東西或可以代替的某些方法?

任何想法,將不勝感激

提前致謝

我在使浮動QDockWidget失去焦點中發布了類似問題的答案。 在Win32上,您實際上沒有完全繞過窗口管理器的選擇,但是通過攔截nativeEvent處理WM_MOUSEACTIVATE,您應該能夠獲得所需的大多數行為。

我會嘗試忽略該事件。 我相信您需要在主應用程序窗口上忽略FocusIn不確定實際事件,可能需要對其進行原型制作。 您可以通過安裝事件過濾器或手動重新實現其中一種event方法(可能是event本身)來忽略事件。 我不知道哪種方法是首選方法,但是我會首先嘗試使用事件過濾器來完成此任務: http : //doc.trolltech.com/4.6/qobject.html#eventFilter

我從未嘗試捕獲鍵盤焦點事件,但是我能夠成功忽略QDialog轉義鍵,以防止用戶意外關閉窗口。 我相信應該有可能。

暫無
暫無

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

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