He botón X discapacitados en Qt de mi diálogo utilizando esta línea:¿Cómo puedo desactivar el cierre de ventana Alt + F4 usando Qt?
myDialog->setWindowFlags(Qt::Dialog | Qt::Desktop)
pero no pude detectar Alt + F4 utilizando este código:
void myClass::keyPressEvent(QKeyEvent *e)
{
if ((e->key()==Qt::Key_F4) && (e->modifiers()==Qt::AltModifier))
doSomething();
}
lo debo hacer para detectar Alt + F4 o desactivarlo en Qt?
Tienes dos errores: es 'keyPressEvent (QKeyEvent * EVT)' '' no Press' Pressed' y el tipo es diferente. Pero con esta corrección aplicada ... funciona bien. :) –
Ignorar keyPressEvent (QKeyEvent * evt) y dejarlo vacío, podría causar otros problemas, como no funcionar Introducir el comportamiento de la clave que podría ser necesario, por ejemplo, cuando queremos permitir que el usuario continúe haciendo clic en la tecla Enter. Por lo tanto, es mucho mejor definir claves que no queremos permitir explícitamente en tales casos específicos. O, en otras palabras, sería recomendable llamar a BaseWidget :: keyPressEvent (evt) donde BaseWidget es algo que se hereda (podría ser QWidget, QDialog, etc.) –