如何在Solaris CDE中使非模式对话框停留在其父对话框之上 [英] How to make modeless dialog stay on top of its parent in Solaris CDE

查看:17
本文介绍了如何在Solaris CDE中使非模式对话框停留在其父对话框之上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在使用CDE(Common Desktop Environment,通用桌面环境)的Solaris 8/10计算机上使用Qt非模式对话框时遇到问题。

该对话框用作绘图面板/弹出窗口,要求用户在继续在其上绘图之前从主应用程序中选择工具。问题是,只要用户单击主应用程序工具栏,对话框就会移到主应用程序的后面。

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

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

我已尝试将WX11BypassWM标志传递给对话框以绕过窗口管理器,但随后边框和边框消失,导致对话框无法拖动/可移动。

更新1:

关于Andy's answer

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

我还尝试组合:

WX11BypassWM | WStyle_StaysOnTop | WStyle_Title

WStyle_DialogBorder, WType_TopLevel等的其他组合,则仅当传入WX11BypassWM时它才保持在顶部。

但只要传入WX11BypassWM,显示的对话框就不会有边框或标题栏。

这意味着它是一个不可移动的无标题对话框。

更新2:

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

这至少会让用户同时在两个界面中导航。

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

推荐答案

我不确定是否理解了您的问题,但是,是否可以使用:

在QtAssistant中找到:

enum Qt::WindowType
flags Qt::WindowFlags

Qt::WindowStaysOnTopHint

"通知窗口系统该窗口应位于所有其他窗口之上。"

我希望这会有一点帮助!

这篇关于如何在Solaris CDE中使非模式对话框停留在其父对话框之上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆