Как сделать так, чтобы немодальный диалог оставался поверх родительского в Solaris CDE - PullRequest
1 голос
/ 18 ноября 2009

У меня проблема с немодальным диалогом Qt на машине Solaris 8/10 с использованием CDE (Common Desktop Environment).

Диалог служит панелью рисования / всплывающим окном, требующим, чтобы пользователь выбрал инструменты из основного приложения, прежде чем приступить к рисованию на нем. Проблема заключается в том, что всякий раз, когда пользователь нажимает на главную панель инструментов приложения, диалоговое окно идет за основным приложением.

Обратите внимание, что это поведение относится только к CDE, среда Open Windows или среда Solaris Java не вызывают эту проблему.

У меня вопрос, как я могу сделать так, чтобы он всегда был поверх родительского элемента (основного приложения)?

Я пытался передать в диалоговом окне флаг WX11BypassWM, чтобы пропустить диспетчер окон, но затем границы и рамки исчезли, из-за чего диалог не мог перетаскиваться / перемещаться.

Обновление 1:

Что касается Ответ Энди :

Я пробовал Qt::WStyle_StaysOnTop, но это не работает.

Я также пытался объединить:

WX11BypassWM | WStyle_StaysOnTop | WStyle_Title

и другие комбинации WStyle_DialogBorder, WType_TopLevel и т. Д., Они остаются на вершине, только если передано WX11BypassWM.

Но всякий раз, когда передается WX11BypassWM, в отображаемом диалоговом окне не будет ни рамки, ни строки.

Это означает, что это неподвижное диалоговое окно без теней.

Обновление 2:

Поскольку я не могу найти решение этой проблемы, в настоящее время я решаю его, изменяя размеры и перемещая основное приложение и немодальный диалог, чтобы они были рядом.

Это как минимум позволит пользователю перемещаться в обоих интерфейсах.

Если у вас есть лучшее предложение, дайте мне знать.

1 Ответ

0 голосов
/ 18 ноября 2009

Я не уверен, что понял ваш вопрос, но нельзя было бы использовать:

Найдено в QtAssistant:

enum Qt::WindowType
flags Qt::WindowFlags

Qt :: WindowStaysOnTopHint :

"Сообщает оконной системе, что окно должно оставаться поверх всех остальных окон."

Надеюсь, это немного поможет!

...