Qt - отключение QDialog "?" кнопка - PullRequest
20 голосов
/ 03 июня 2010

Я создаю экземпляр QDialog, и слева от кнопки «x» (закрыть) у меня также есть «?» кнопка. Как я могу отключить это?

Ответы [ 3 ]

40 голосов
/ 09 июня 2010

Изменить флажки окна, например, в конструкторе:

this->setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint);
5 голосов
/ 03 июня 2010

Из документации Qt 4.6 QDialog:

QDialog::QDialog ( QWidget * parent  = 0, Qt::WindowFlags  f = 0 )

Создает диалог с родителем parent.

Диалог всегда является виджетом верхнего уровня, но если у него есть родительский элемент, его расположение по умолчанию центрируется поверх родительского элемента. Он также поделится записью родительской панели задач.

Флаги виджета f передаются конструктору QWidget. Если, например, вам не нужна кнопка ** Что это в строке заголовка диалога **, введите Qt::WindowTitleHint | Qt::WindowSystemMenuHint в f.

См. Также QWidget::setWindowFlags().

0 голосов
/ 03 июня 2010

Если вы просто хотите отключить кнопку, вы можете позвонить 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);

Если вы не знаете о кнопочном поле, я думаю, что дизайнер автоматически добавил его для вас, и у него должно быть имя, которое делает его доступным. Там также должны быть свойства (флажки), которые вы можете проверить, чтобы контролировать, какие кнопки доступны по умолчанию.

...