如何在Solaris CDE中使无模式对话框保持在其父级之上

时间:2009-11-18 09:59:01

标签: qt solaris

使用CDE(通用桌面环境)的Solaris 8/10计算机中的Qt无模式对话框出现问题。

该对话框用作绘图面板/弹出窗口,要求用户在继续绘制之前从主应用程序中选择工具。问题是每当用户点击主应用程序工具栏时,对话框就会在主应用程序后面。

请注意,这是仅与CDE相关的行为,Open Open环境或Solaris Java环境不会导致此问题。

我的问题是如何让它始终位于其父(主应用程序)之上?

我试图将WX11BypassWM标记传递给对话框,通过窗口管理器传递,但边框和框架消失,导致对话框无法拖动/移动。

更新1:

关于Andy's answer

我尝试了Qt::WStyle_StaysOnTop,但它不起作用。

我还尝试结合:

WX11BypassWM | WStyle_StaysOnTop | WStyle_Title

WStyle_DialogBorder, WType_TopLevel等的其他组合,只有在传入WX11BypassWM时才会保持在最佳状态。

但是只要传入WX11BypassWM,显示的对话框就不会有边框也不会有小条。

这意味着这是一个不可动摇的无关紧要的对话。

更新2:

由于我找不到这个问题的解决方案,暂时我通过调整主应用程序和无模式对话框的大小并重新定位来解决它。

这至少可以让用户在两个界面中导航。

任何人如果有更好的建议,请告诉我。

1 个答案:

答案 0 :(得分:0)

我不确定我理解你的问题,但是,不可能使用:

在QtAssistant中找到:

enum Qt::WindowType
flags Qt::WindowFlags

Qt :: WindowStaysOnTopHint

“通知窗口系统窗口应该保持在所有其他窗口的顶部。”

我希望它有所帮助!