Вопрос

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

Флаги виджетов 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);

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top