开发者

How to make modeless dialog stay on top of its parent in Solaris CDE

I have a problem with Qt modeless dialog in Solaris 8/10 machine using CDE (Common Desktop Environment).

The dialog serve as drawing panel/popup that required user to choose the tools from main application before proceeding to draw on it. The problem is whenever user click on main application toolbar, then the dialog will goes behind the main application.

Notice that this is the behavior pertaining to CDE only, Open Windows enviroment or Solaris Java environment don't cause this issue.

My question is how can I make it always on top of its parent (main application)?

I've tried to pass in WX11BypassWM flag to the dialog, to by pass window manager, but then the border and frame is gone which cause the dialog to not drag/move-able.

Update 1:

With regard to Andy's answer:

I've tried Qt::WStyle_StaysOnTop, but it doesn't work.

I tried also to combine:

WX11BypassWM | WStyle_StaysOnTop | WStyle_Title

and other combinationa of WStyle_DialogBorder, WType_TopLevel etc, it only stays on top if WX11BypassWM is passed in.

But whenever WX11BypassWM is passed in, the dialog shown up will not have border nor the tittle bar.

Which means it's a unmove-able tittle-less dialog.

Update 2:

Since I can't find a solution for this issue, for the time being, I resolve it by resizing and reposition the main application and the modeless dialog to be side by side.

开发者_JS百科

This at least will let user navigate in both interface.

Anyone if has a better suggestion then let me know.


I'm not sure I understood your question, but, wouldn't it be possible to use :

Found in QtAssistant :

enum Qt::WindowType
flags Qt::WindowFlags

Qt::WindowStaysOnTopHint :

"Informs the window system that the window should stay on top of all other windows."

I hope it helps a bit !

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜