2009-11-18 42 views
1

我在使用CDE(公用桌面環境)的Solaris 8/10機器中使用Qt無模式對話框時出現問題。如何使無模式對話框停留在Solaris CDE的父級之上

該對話框用作繪圖面板/彈出窗口,要求用戶在繼續繪製之前從主應用程序中選擇工具。問題是每當用戶點擊主應用程序工具欄時,對話框就會在主應用程序後面。

請注意,這只是與CDE相關的行爲,Open Windows環境或Solaris Java環境不會導致此問題。

我的問題是如何使它總是在其父(主應用程序)之上?

我試着將WX11BypassWM標誌傳遞給對話框,以通過窗口管理器,但是隨後邊框和框架消失,導致對話框不能拖/移動。

更新1:

關於Andy's answer

我試過Qt::WStyle_StaysOnTop,但它不工作。

我想也結合:

WX11BypassWM | WStyle_StaysOnTop | WStyle_Title

WStyle_DialogBorder, WType_TopLevel等其他combinationa,如果WX11BypassWM是通過只停留在頂端

但每當WX11BypassWM傳遞中,對話框。顯示出來的將不會有邊界,也沒有標題欄。

這意味着它是一個不可移動的無標籤對話框。

更新2:

因爲我無法找到針對此問題的解決方案,暫時,我通過調整解決它,並重新定位主應用程序和無模式對話框並排。

這至少會讓用戶在兩個界面中導航。

任何人如果有更好的建議,然後讓我知道。

回答

0

我不知道我理解你的問題,但是,是不是有可能使用:

發現在QtAssistant:

enum Qt::WindowType 
flags Qt::WindowFlags 

的Qt :: WindowStaysOnTopHint

「通知窗口系統該窗口應該保留在所有其他窗口之上。」

我希望它有一點幫助!

+0

謝謝安迪, 我試過Qt :: WStyle_StaysOnTop,但它不起作用。 我想也結合「WX11BypassWM |一個WStyle_StaysOnTop | WStyle_Title」(和WStyle_DialogBorder一起,WType_TopLevel ...的其他組合),只停留在頂端如果WX11BypassWM是傳中 但每當WX11BypassWM的傳中,顯示的對話框了。將不會有邊界和標題欄。 這意味着它是一個不可移動的無標題對話框... – JackyTeoh 2009-11-19 01:47:06

+0

操作,評論不會被格式化。 – JackyTeoh 2009-11-19 01:49:55

相關問題