Как сделать так, чтобы немодальный диалог оставался поверх своего родителя в Solaris CDE
Вопрос
У меня проблема с немодальным диалогом Qt на компьютере Solaris 8/10 с использованием CDE (Common Desktop Environment).
Диалоговое окно служит панелью/всплывающим окном для рисования, которое требует от пользователя выбора инструментов из основного приложения, прежде чем приступить к рисованию.Проблема заключается в том, что всякий раз, когда пользователь нажимает на панель инструментов основного приложения, диалоговое окно выходит за основное приложение.
Обратите внимание, что это поведение относится только к CDE. Открытая среда Windows или среда Solaris Java не вызывают этой проблемы.
Мой вопрос: как я могу сделать его всегда поверх родительского (основного приложения)?
Я попытался передать флаг WX11BypassWM в диалоговое окно, чтобы обойти оконный менеджер, но затем граница и рамка исчезли, из-за чего диалоговое окно невозможно перетащить/переместить.
Обновление 1:
В отношении к Ответ Энди:
я пробовал Qt::WStyle_StaysOnTop
, но это не работает.
Я также попробовал объединить:
WX11BypassWM | WStyle_StaysOnTop | WStyle_Title
и другие комбинации WStyle_DialogBorder, WType_TopLevel
и т. д., он останется наверху только в том случае, если WX11BypassWM
передается.
Но всякий раз, когда WX11BypassWM
передается, отображаемое диалоговое окно не будет иметь ни рамки, ни заголовка.
Это означает, что это неподвижный, безмолвный диалог.
Обновление 2:
Поскольку я не могу найти решение этой проблемы, на данный момент я решаю ее, изменяя размер и перемещая основное приложение и немодальное диалоговое окно так, чтобы они располагались рядом.
По крайней мере, это позволит пользователю перемещаться по обоим интерфейсам.
Если у кого-нибудь есть лучшее предложение, дайте мне знать.
Нет правильного решения
Другие советы
Я не уверен, что понял ваш вопрос, но нельзя ли было бы использовать:
Найдено в QtAssistant:
enum Qt::WindowType
flags Qt::WindowFlags
Qt::WindowStaysOnTopHint :
«Сообщает оконной системе, что окно должно оставаться поверх всех остальных окон».
Надеюсь, это немного поможет!