Моя проблема: приложение QT 4 C ++ для запуска в Linux должно блокировать все виды рутинных функций графического интерфейса. В частности, я хочу удалить как можно большую часть функциональности строки заголовка.
Я смог сделать большую часть этого с помощью
setWindowFlags (Qt :: Window | Qt :: CustomizeWindowHint | Qt :: WindowTitleHint);
Но в левом верхнем углу строки заголовка остается выпадающее меню. Большинство внутренних функций отключены (без min, max или close), но флажок «всегда сверху» включен.
Могу ли я отключить флажок «Всегда сверху» через QT или мне нужно найти обходной путь ОС?
Заголовок окна обрабатывается диспетчером окон. Qt не может изменить заголовок окна напрямую. Он может использовать только разные подсказки и собственный API, чтобы попросить оконный менеджер сделать то, что вы хотите (удалить определенные кнопки и т. Д.). Оконный менеджер может отклонить ваш запрос. Поэтому единственное 100% работающее решение — это использовать Qt :: FramelessWindowHint и рисовать собственные декорации окон вручную.
Других решений пока нет …