Я создаю экземпляр QDialog и слева от 'x' (близкая) кнопка, которую я имею также'?' кнопка. Как я могу отключить это'?'?
Измените флаги окна, например, в конструкторе:
this->setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint);
Из документации Qt 4.6 QDialog:
QDialog :: QDialog (QWidget * parent = 0, Qt :: WindowFlags f = 0)
Создает диалог с родительским
родительским
.Диалог всегда является виджетом верхнего уровня, но если у него есть родительский элемент, его расположение по умолчанию центрируется над родительским элементом. Он также будет разделять запись родительской панели задач.
Флаги виджета
f
передаются конструкторуQWidget
. Если, например, вам не нужна кнопка ** Что это в строке заголовка диалогового окна **, передайтеQt :: WindowTitleHint | Qt :: WindowSystemMenuHint
вf
.
См. Также QWidget :: setWindowFlags ()
.
Если вы просто хотите отключить кнопку, вы можете вызвать 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);
Если вы не знаете о кнопочном блоке, я предполагаю, что дизайнер автоматически добавил его для вас, и у него должно быть имя, делающее его доступным. Также должны быть свойства (флажки), которые вы можете проверить, чтобы контролировать, какие кнопки доступны по умолчанию.