Comment puis-je désactiver les touches Alt + F4 fermeture de fenêtre à l'aide de Qt?
J'ai désactivé le bouton X dans l'intervalle Qt à partir de ma boîte de dialogue à l'aide de cette ligne:
myDialog->setWindowFlags(Qt::Dialog | Qt::Desktop)
mais je ne pouvais pas détecter Alt + F4 à l'aide de ce code:
void myClass::keyPressEvent(QKeyEvent *e)
{
if ((e->key()==Qt::Key_F4) && (e->modifiers()==Qt::AltModifier))
doSomething();
}
que dois-je faire pour détecter Alt+F4 ou le désactiver dans Qt?
Vous devez vous connecter pour publier un commentaire.
Appuyant sur
Alt+F4
résultats dans un événement close être envoyé à votre fenêtre de premier niveau. Dans la fenêtre de votre classe, vous pouvez remplacercloseEvent()
de les ignorer et de les prévenir de votre application à partir de la clôture.Si vous avez quitté le bouton fermer (X) visible, cette méthode serait également désactiver la fermeture de votre application.
Il est généralement utilisé pour donner à l'application d'une chance de décider si elle veut fermer ou pas, ou demander à l'utilisateur en affichant un "Êtes-vous sûr?" de la boîte de message.
Le code ci-dessous empêche une boîte de dialogue fermer lorsque appuyé sur Alt+F4, [X] ou de s'Échapper, mais pas en appelant SomeDialog::méthode close ().
bonne chance à tous 😉
keyPressEvent(QKeyEvent *evt)
Press
pasPressed
et le type est différent. Mais avec ce correctif appliqué, il fonctionne bien. 🙂Vous pouvez également gérer l'événement dans votre boîte de dialogue de classe (du moins si c'est modale dlg):