En un botón haga clic en la ranura, creo y exec()
un cuadro de diálogo con un elemento primario NULL. Dentro del constructor del diálogo, tengo:¿Cómo establecer el foco de entrada en un cuadro de diálogo mostrado en Qt?
this->activateWindow();
this->raise();
this->setFocus();
El diálogo es de aplicación modal y tiene un fuerte enfoque. Sin embargo, NO responde a los eventos del teclado hasta que hago clic en él. ¿Cómo hago para que el diálogo se enfoque sin tener que hacer clic en él?
La clase es solo una clase derivada de QDialog, con los siguientes indicadores de ventana configurados: '(Qt :: CustomizeWindowHint | Qt :: FramelessWindowHint | Qt :: Tool | Qt :: WindowStaysOnTopHint' No tiene elementos secundarios ni elementos principales. –
Ya, para el diálogo que desea obtener los eventos del teclado, instale el filtro de eventos para el diálogo, en el constructor del diálogo escribe this-> installEventFilter (esto); igonre la función "focusNextChild()" en mi ejemplo anterior. en el archivo de diálogo pastor declarar archivo de función y CPP keyPressEvent proporcionar la aplicación que el anterior – Naruto
Así qué se refiere esta this-> installEventFilter (este);? vacío QDialogDerived :: keyPressEvent (* QKeyEvent evento) { QLineEdit :: keyPressEvent (evento); // hago mi procesamiento aquí? } –