Название: Отключить в окне кнопку "Закрыть" Отправлено: Paramon от Июнь 25, 2014, 11:05 Пробовал так, но окно просто прячется. К winapi прибегать не хотелось бы.
Код: this->setWindowFlags(Qt::MSWindowsFixedSizeDialogHint | Qt::WindowTitleHint | Qt::Dialog | Qt::WindowMinimizeButtonHint | Qt::CustomizeWindowHint); Если послать после установки флагов this->show(); - то работает, но это как-то неправильно. Название: Re: Отключить в окне кнопку "Закрыть" Отправлено: Johnik от Июнь 25, 2014, 11:40 closeEvent (http://qt-project.org/doc/qt-4.8/qwidget.html#closeEvent)
Название: Re: Отключить в окне кнопку "Закрыть" Отправлено: Paramon от Июнь 25, 2014, 12:12 closeEvent (http://qt-project.org/doc/qt-4.8/qwidget.html#closeEvent) И как мне это поможет отключить (сделать недоступными) кнопку [X] в правом верхнем углу и пункт в системном меню? ::)Название: Re: Отключить в окне кнопку "Закрыть" Отправлено: Zerkin от Июнь 25, 2014, 15:03 Paramon, я очень давно делал вот так, но это действительно неправильно и некрасиво.
Код
А товарищ Johnik имел в виду, видимо, что стоит попробовать перехватит closeEvent и что-нибудь с этим сделать, правда это не то, что вам надо. Я так понимаю, что кнопка должна быть недоступна. Название: Re: Отключить в окне кнопку "Закрыть" Отправлено: Alex Custov от Июнь 25, 2014, 15:21 А как правильно, если setWindowFlags неправильно?
Название: Re: Отключить в окне кнопку "Закрыть" Отправлено: GreatSnake от Июнь 25, 2014, 15:23 Довольно-таки странное желание коли создаёшь окно типа Dialog.
Название: Re: Отключить в окне кнопку "Закрыть" Отправлено: Zerkin от Июнь 25, 2014, 15:26 А как правильно, если setWindowFlags неправильно? Не в смысле, что это "неправильно" =) Как сделать это нормально без всяких сворачиваний лично мне неизвестно. Могу предложить еще один костыль для винды. Код
где this - ваш оконный виджет Собственно взято это решение в своё время вот отсюда. http://www.qtcentre.org/threads/9348-Disable-Close-button-%28X%29-of-a-QDialog Название: Re: Отключить в окне кнопку "Закрыть" Отправлено: Alex Custov от Июнь 25, 2014, 15:31 насколько я помню, если вызывать setWindowFlags() до show()/exec(), то всё будет в порядке.
Название: Re: Отключить в окне кнопку "Закрыть" Отправлено: Zerkin от Июнь 25, 2014, 15:37 насколько я помню, если вызывать setWindowFlags() до show()/exec(), то всё будет в порядке. Определенно =) А если виджет уже отшоувен? У автора именно такая ситуация, насколько я понимаю. Если флаги меняются уже после первоначальной инициализации и при активном зашоувленном окне? Название: Re: Отключить в окне кнопку "Закрыть" Отправлено: Paramon от Июнь 26, 2014, 09:42 Спасибо за ответы.
Я забыл, что когда давным-давно пытался сделать то же на winapi - столкнулся с той же проблемой. Помогало только сворачивание-разворачивание окна. Как решил (и решил ли) уже не помню. :( Название: Re: Отключить в окне кнопку "Закрыть" Отправлено: Zerkin от Июнь 26, 2014, 10:45 Спасибо за ответы. Я забыл, что когда давным-давно пытался сделать то же на winapi - столкнулся с той же проблемой. Помогало только сворачивание-разворачивание окна. Как решил (и решил ли) уже не помню. :( Сейчас протестировал один свой проект, прикрутил к нему эту фичу с HMENU. На винде работает на ура. Название: Re: Отключить в окне кнопку "Закрыть" Отправлено: Paramon от Июнь 26, 2014, 16:01 Сейчас протестировал один свой проект, прикрутил к нему эту фичу с HMENU. На винде работает на ура. Если это вообще возможно реализовать - то хотелось бы силами Qt без winapi.Вроде инсталлятор 5.х, написанный на себе, отключает кнопку "закрыть". |