mam wyłączoną przycisk X w Qt z mojego okna za pomocą tej linii:Jak mogę wyłączyć zamykanie okna Alt + F4 za pomocą Qt?
myDialog->setWindowFlags(Qt::Dialog | Qt::Desktop)
ale nie mogłem wykryć Alt + F4 przy użyciu tego kodu:
void myClass::keyPressEvent(QKeyEvent *e)
{
if ((e->key()==Qt::Key_F4) && (e->modifiers()==Qt::AltModifier))
doSomething();
}
co powinieneś zrobić, aby wykryć Alt F4 lub wyłączyć go w Qt?
Masz dwa błędy: jest 'keyPressEvent (QKeyEvent * EVT)' '' nie Press' Pressed' a typ jest inny. Ale po zastosowaniu tej poprawki ... działa dobrze. :) –
Just overriding keyPressEvent (QKeyEvent * evt) i pozostawienie go pustego, może spowodować inne problemy, na przykład nie działa Wprowadź kluczowe zachowanie, które może być potrzebne, na przykład, gdy chcemy zezwolić użytkownikowi na kontynuowanie, klikając klawisz Enter. Dlatego znacznie lepiej jest zdefiniować klucze, których nie chcemy jawnie dopuszczać w takich konkretnych przypadkach. Innymi słowy, byłoby wskazane wywołanie BaseWidget :: keyPressEvent (evt), gdzie BaseWidget jest dziedziczone (może to być QWidget, QDialog itp.) –