Отключить кнопку закрытия QDialogs по умолчанию (верхняя левая крестообразная кнопка)?

Можно ли отключить/удалить кнопку закрытия QDialogs по умолчанию в левом верхнем углу диалогового окна?


person Streight    schedule 01.04.2012    source источник


Ответы (4)


По крайней мере, в (встроенном) Linux вы можете сделать это:

setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint);

При этом я получаю окно с заголовком, но без кнопок.

person user3912842    schedule 06.08.2014

Очистка WindowCloseButtonHint в WindowFlags может сделать то, что вы хотите. Посмотрите пример здесь.

person Stephen Chu    schedule 01.04.2012
comment
Теперь я попытался настроить окно на setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint); или setWindowFlags(windowFlags() & ~Qt::WindowCloseButtonHint); . Проблема в том, что обе идеи по-прежнему оставляют кнопку максимизации, а при максимизации снова появляется кнопка закрытия. Есть идеи? - person Streight; 02.04.2012

Используйте эту функцию для вашего диалога

dlgLobLobLob->setWindowFlags(Qt::Dialog | Qt::Desktop)
person Mohammad Sheykholeslam    schedule 28.04.2012
comment
Пробовал так, но к сожалению не работает - доступны все кнопки (закрыть, развернуть, свернуть). Думаю, это зависит от Unity Desktop. - person Streight; 29.04.2012

Попробуйте setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint | Qt::WindowTitleHint); . Вы можете проверить пример флагов окна и поэкспериментировать чтобы увидеть эффекты всех возможных комбинаций WindowFlags

person YamHon.CHAN    schedule 27.03.2013