QT - Desactivar QDialog "?" botón
Pregunta
Creo una instancia de QDialog y a la izquierda del botón 'X' (Cerrar) que también tengo '?' botón. ¿Cómo puedo deshabilitar eso '?' ?
Solución
Cambie las banderas de la ventana, por ejemplo en el constructor:
this->setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint);
Otros consejos
De la documentación QT 4.6 Qdialog:
QDialog::QDialog ( QWidget * parent = 0, Qt::WindowFlags f = 0 )
Construye un diálogo con el padre
parent
.Un diálogo es siempre un widget de nivel superior, pero si tiene un padre, su ubicación predeterminada se centra en la parte superior del padre. También compartirá la entrada de la barra de tareas del padre.
Las banderas del widget
f
se transmiten a laQWidget
constructor. Si, por ejemplo, no quieres un ** que es esto botón en la barra de título del diálogo **, paseQt::WindowTitleHint | Qt::WindowSystemMenuHint
enf
.
Ver también QWidget::setWindowFlags()
.
Si solo desea deshabilitar el botón, puede llamar setEnabled(bool)
, pero dudo que eso es lo que se le pregunta.
Si desea eliminar ese botón, consulte a continuación:
QDialog
está destinado a usar un QDialogButtonBox
Como los botones que aparecen en el diálogo. Puede usar accesorios disponibles en QdialogButtonbox Para deshabilitar los botones que no desea (así como habilitar otros).
Por ejemplo (de la documentación vinculada a arriba):
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);
Si no es consciente del cuadro de botones, supongo que el diseñador lo agregó automáticamente y debería tener un nombre que lo haga accesible. También debe haber propiedades (casillas de verificación) que puede verificar para controlar a qué botones están accesibles de forma predeterminada.