【发布时间】:2009-11-18 09:59:00
【问题描述】:
我在使用 CDE(通用桌面环境)的 Solaris 8/10 机器上遇到 Qt 无模式对话框的问题。
对话框用作绘图面板/弹出窗口,要求用户在继续绘制之前从主应用程序中选择工具。问题是每当用户单击主应用程序工具栏时,对话框就会出现在主应用程序的后面。
请注意,这只是与 CDE 有关的行为,Open Windows 环境或 Solaris Java 环境不会导致此问题。
我的问题是如何让它始终位于其父级(主应用程序)之上?
我尝试将 WX11BypassWM 标志传递给对话框,以绕过窗口管理器,但是边框和框架消失了,导致对话框无法拖动/移动。
更新 1:
我试过Qt::WStyle_StaysOnTop,但它不起作用。
我也尝试过结合:
WX11BypassWM | WStyle_StaysOnTop | WStyle_Title
和WStyle_DialogBorder, WType_TopLevel等的其他组合,只有在传入WX11BypassWM时才会停留在最前面。
但每当传入WX11BypassWM 时,显示的对话框将没有边框,也没有标题栏。
这意味着它是一个不可移动的无标题对话。
更新 2:
由于我找不到此问题的解决方案,因此我暂时通过调整主应用程序和无模式对话框的大小并将其重新定位到并排来解决它。
这至少可以让用户在两个界面中导航。
如果有人有更好的建议,请告诉我。
【问题讨论】: