2009-11-18 38 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

相关问题