Я создаю экземпляр QDialog и слева от кнопки «x» (закрыть), у меня также есть?? кнопка. Как я могу отключить это? ?Qt - Отключение QDialog's?? button
ответ
Измените флаги окна, например, в конструкторе: «?»
this->setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint);
Спасибо, это то, что мне нужно. – Narek
Попытка вызова setWindowFlags() напрямую не работала, потому что '~' не применялся. & = operator:
Qt::WindowFlags flags = windowFlags(); flags &= ~Qt::WindowContextHelpButtonHint; setWindowFlags(flags);–
На самом деле у нас была противоположная проблема, в нашем диалоговом окне не было кнопки справки. Этот ответ помог нам найти проблему. Спасибо – Liz
Из QDialog документации Qt 4.6:
QDialog::QDialog (QWidget * parent = 0, Qt::WindowFlags f = 0)
Создает диалог с родителем
parent
.Диалог всегда представляет собой виджет верхнего уровня, но если он имеет родителя, его местоположение по умолчанию находится по центру родителя. Он также поделится записью панели задач родителя.
Флаги виджета
f
передаются на конструкторQWidget
. Если, например, вы не хотите использовать ** Что это такое кнопка в строке заголовка диалогового окна **, перейдитеQt::WindowTitleHint | Qt::WindowSystemMenuHint
вf
.
См. Также QWidget::setWindowFlags()
.
Для QDialog Qt :: WindowTitleHint | Флаги Qt :: WindowSystemMenuHint вызывают ненормальное поведение. – Narek
Если вы просто хотите отключить кнопку, вы можете позвонить setEnabled(bool)
, но я сомневаюсь, что это то, что вас спрашивает.
Если вы хотите удалить эту кнопку, смотрите ниже:
QDialog
предназначен для использования в качестве QDialogButtonBox
кнопок, которые отображаются в диалоговом окне. Вы можете использовать аксессоры, доступные в QDialogButtonBox, чтобы отключить кнопки, которые вы не хотите (а также включить другие).
Для примера (из документации, связанной с выше):
findButton = new QPushButton(tr("&Find"));
findButton->setDefault(true);
moreButton = new QPushButton(tr("&More"));
moreButton->setCheckable(true);
moreButton->setAutoDefault(false);
buttonBox = new QDialogButtonBox(Qt::Vertical);
buttonBox->addButton(findButton, QDialogButtonBox::ActionRole);
buttonBox->addButton(moreButton, QDialogButtonBox::ActionRole);
Если вы не знаете коробки кнопки, я думаю, что дизайнер автоматически добавил его для вас, и он должен иметь имя что делает его доступным. Также должны быть свойства (флажки), которые вы можете проверить, чтобы контролировать, какие кнопки доступны по умолчанию.
Это хорошо написанный ответ, но я думаю, что он имел в виду кнопки в строке заголовка для диалога (декорации окон). –
Ох. Я думаю, что вы правы - я определенно неправильно понял, что один :( –
Возможный дубликат [Как я могу скрыть/удалить help в строке заголовка Qt Dialog?] (http://stackoverflow.com/questions/81627/how-can-i-hide-delete-the-help-button-on-the-title-bar -of-a-qt-dialog) –