Подтвердить что ты не робот

Qt - Отключение QDialog? " кнопка

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

4b9b3361

Ответ 1

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

this->setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint);

Ответ 2

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

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

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

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

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

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

Ответ 3

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

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