У меня проблема с немодальным диалогом 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:
Поскольку я не могу найти решение этой проблемы, в настоящее время я решаю его, изменяя размеры и перемещая основное приложение и немодальный диалог, чтобы они были рядом.
Это как минимум позволит пользователю перемещаться в обоих интерфейсах.
Если у вас есть лучшее предложение, дайте мне знать.