Zauważyłem że moja apka wysypuje się jeśli w nacisnę strzałkę w bok lub w prawo gdy mam zaznaczone pewne elementy w drzewie (te które mogę zwijać i rozwijać). Stwierdziłem że nie potrzebuje nawigacji strzałkami w bok i w prawo i szybko zreimplementowałem keyPressEvent:
void MyTree::keyPressEvent(QKeyEvent *e)
{
if(e->key() == Qt::Key_Left || e->key() == Qt::Key_Right){
e->ignore();
}
else{
e->accept();
}
}
Problem w tym że reimplementując event przestała mi działać nawigacja "góra-dół", mimo że debugger pokazuje że naciskając te klawisze poprawnie jest wywoływany accept(), tylko co z tego jeśli kursor zaznaczenia nie przeskakuje. Klawisz contextMenu działa i menu kontekstowym mogę normalnie sie poruszać strzałkami góra-dół. Czy muszę teraz pisać kod dla zdarzeń Qt::Key_Up i Qt::Key_Down czy po prostu czegoś nie ustawiłem? A może inaczej mogę sobie "wyłączyć" eventy strzałek prawo-lewo?