Я создаю экземпляр QDialog и слева от кнопки "x" (закрыть), у меня также есть?? кнопка. Как я могу отключить это?
Qt - Отключение QDialog? " кнопка
Ответ 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);
Если вы не знаете о кнопке, я бы предположил, что дизайнер автоматически добавил его для вас, и у него должно быть имя, которое сделает его доступным. Также должны быть свойства (флажки), которые вы можете проверить, чтобы контролировать, какие кнопки доступны по умолчанию.