Estoy usando Qt Dialogs en una de mis aplicaciones. Necesito ocultar/eliminar el botón de ayuda. Pero no soy capaz de localizar exactamente dónde obtengo el mango de su botón de ayuda. No estoy seguro si es una bandera en particular en la ventana de Qt.¿Cómo puedo ocultar/eliminar el "?" botón de ayuda en la "barra de título" de un cuadro de diálogo Qt?
Respuesta
De forma predeterminada, se agrega la marca Qt :: WindowContextHelpButtonHint a los cuadros de diálogo. Puede controlar esto con el parámetro WindowFlags en el constructor del diálogo.
Por ejemplo, puede especificar sólo la TitleHint y SystemMenu banderas haciendo:
QDialog *d = new QDialog(0, Qt::WindowSystemMenuHint | Qt::WindowTitleHint);
d->exec();
Si se agrega el Qt :: WindowContextHelpButtonHint bandera obtendrá el botón de ayuda posterior.
En PyQt que puede hacer:
from PyQt4 import QtGui, QtCore
app = QtGui.QApplication([])
d = QtGui.QDialog(None, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
d.exec_()
Más detalles sobre banderas de las ventanas se pueden encontrar en la WindowType enum en la documentación de Qt.
Ok, encontré la manera de hacerlo.
Se trata de las banderas de la ventana. Así que aquí está el código que utilicé:
Qt::WindowFlags flags = windowFlags()
Qt::WindowFlags helpFlag =
Qt::WindowContextHelpButtonHint;
flags = flags & (~helpFlag);
setWindowFlags(flags);
Pero al hacer esto a veces el icono del diálogo se restablece. Entonces, para asegurarse de que el ícono del diálogo no cambie, puede agregar dos líneas.
QIcon icon = windowIcon();
Qt::WindowFlags flags = windowFlags();
Qt::WindowFlags helpFlag =
Qt::WindowContextHelpButtonHint;
flags = flags & (~helpFlag);
setWindowFlags(flags);
setWindowIcon(icon);
Versión más corta: 'setWindowFlags (windowFlags() & ~ Qt :: WindowContextHelpButtonHint);' –
@ ThorbjørnLindeijer: Debe agregar esto como una respuesta. – Hossein
Las respuestas figuran en esta lista va a funcionar, pero para responder a usted mismo, te recomiendo que ejecute el programa de ejemplo $QTDIR/examples/widgets/windowflags
. Eso le permitirá probar todas las configuraciones de indicadores de ventana y sus efectos. Muy útil para descubrir los problemas de las ventanas de ardilla.
No pude encontrar una ranura pero puede anular la función virtual winEvent
.
#if defined(Q_WS_WIN)
bool MyWizard::winEvent(MSG * msg, long * result)
{
switch (msg->message)
{
case WM_NCLBUTTONDOWN:
if (msg->wParam == HTHELP)
{
}
break;
default:
break;
}
return QWizard::winEvent(msg, result);
}
#endif
me encontré con este problema en Windows 7, Qt 5.2, y la combinación banderas que funcionó mejor para mí era la siguiente:
Qt :: WindowTitleHint | Qt :: WindowCloseButtonHint
Esto me da un botón para cerrar el botón que funciona pero sin signo de interrogación. El uso de solo Qt :: WindowTitleHint o Qt :: WindowSystemMenuHint eliminó el botón de ayuda, pero también deshabilitó el botón de cerrar.
Como sugirió Michael Bishop, estaba jugando con el ejemplo de windowflags que me llevó a esta combinación. ¡Gracias!
Esta es la respuesta correcta. Las respuestas anteriores desactivan el botón de cerrar, que de forma predeterminada no está deshabilitado. – Dan
// remove question mark from the title bar
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
la siguiente manera para eliminar signos de interrogación por defecto para todos los cuadros de diálogo de la aplicación podrían utilizarse:
Acople el filtro siguiente evento para QApplication
algún lugar al comienzo de su programa:
bool eventFilter (QObject *watched, QEvent *event) override
{
if (event->type() == QEvent::Create)
{
if (watched->isWidgetType())
{
auto w = static_cast<QWidget *> (watched);
w->setWindowFlags (w->windowFlags() & (~Qt::WindowContextHelpButtonHint));
}
}
return QObject::eventFilter (watched, event);
}
- 1. Abrir nuevo cuadro de diálogo desde un cuadro de diálogo en qt
- 2. ¿Establecer el color de fondo para la barra de título del cuadro de diálogo?
- 3. ¿Cómo puedo desactivar un botón en un cuadro de diálogo de la interfaz de usuario jQuery?
- 4. Cómo colocar un icono en el título de un cuadro de diálogo personalizado
- 5. Título de conjunto dinámico en el cuadro de diálogo
- 6. Android - Cambiar fondo de título de cuadro de diálogo personalizado
- 7. Qt, cuadro de diálogo selector de color?
- 8. ¿Cómo establecer el foco de entrada en un cuadro de diálogo mostrado en Qt?
- 9. Agregar botón a la barra de título de la ventana
- 10. Establecer el título del cuadro de diálogo de confirmación
- 11. ¿Cómo incluir la ayuda '?' en la barra de título de winform
- 12. Impedir que el botón Atrás cierre un cuadro de diálogo
- 13. Aplicar un estilo a todos los cuadros de diálogo (cuadro de diálogo spinner, cuadro de diálogo de alerta, etc.)
- 14. diálogo personalizado Android muestra el título androide barra de
- 15. Qt: agregar un hipervínculo a un cuadro de diálogo
- 16. Cuadro de diálogo Dojo con el botón de confirmación
- 17. Diseño del título del cuadro de diálogo anterior en Android
- 18. ¿Cómo eliminar el título en Diálogo?
- 19. ¿Cómo crear un cuadro de diálogo MFC con una barra de progreso en un hilo separado?
- 20. Qt, el cuadro de diálogo no modal no se cierra
- 21. ¿Cómo puedo personalizar la barra de título en JFrame?
- 22. ¿Cómo agregar un botón adicional a la barra de título de la ventana?
- 23. de la barra de título
- 24. Cómo manejar el 'botón de retroceso' en Android cuando aparece un cuadro de diálogo de progreso
- 25. Cómo crear el cuadro de diálogo jQuery en la función
- 26. ¿Cómo personalizar la barra de título de una aplicación Qt a través de la hoja de estilo Qt?
- 27. Ayuda "?" botón
- 28. ¿Cómo puedo diseñar el borde y la barra de título de una ventana en WPF?
- 29. qtip2 botón de cerrar sin una barra de título
- 30. jQueryUI cuadro de diálogo - no aparece el texto del botón
Vea la respuesta de rrwick a continuación. Si no agrega Qt :: WindowCloseButtonHint a sus banderas, habrá desactivado el botón Cerrar, que está habilitado de manera predeterminada. – Dan
Aquí hay un enlace que especifica los indicadores de ventana en PyQt4, http://pyqt.sourceforge.net/Docs/PyQt4/qt.html#WindowType-enum – Barmaley
También agregue la marca 'Qt :: WindowCloseButtonHint' si desea el botón de cerrar para ser activado –