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