Да се ​​деактивира ли бутонът за затваряне по подразбиране на 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. - person Streight; 29.04.2012

Опитайте setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint | Qt::WindowTitleHint); . Може да искате да проверите Пример за флагове на прозорец и да си поиграете за да видите ефектите от всички възможни комбинации от WindowFlags

person YamHon.CHAN    schedule 27.03.2013