Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Qt Problem ze zdarzeniem QEvent::MouseMove

Ostatnio zmodyfikowano 2017-09-06 13:30
Autor Wiadomość
dlakin95
Temat założony przez niniejszego użytkownika
Qt Problem ze zdarzeniem QEvent::MouseMove
» 2017-09-06 10:53:35
Witam,

mam problem z przechwytywaniem zdarzenia z pomocą EventFilter. Program oczywiście działa, jednak mam mały problem.

Wykonałem sobie mały testowy program dla zapoznania się z przechwytywaniem zdarzeń. Polega on na tym, że mam dwa napisy po na których najechaniu zmienia się ich tekst na "Jest mysz". W momencie, gdy jestem poza napisem mają się pojawić domyślne teksty.

Informacje o tym, że mysz znajduję się w obrębie napisu dostarcza mi QEvent::MouseMove.

Problem jest jednak taki, że po najechaniu napis się zmienia, ale zostaje do momentu wciśnięcia przycisku na oknie głównym.

Mógłby mi to ktoś wyjaśnić?

PS. Przy okazji jestem tu nowy i wybaczcie, ale nie wiem wrzucić mój kod w ramkę, dlatego wrzucę póki co "goły".

C/C++
bool MainWindowClick::eventFilter( QObject * obj, QEvent * ev ) {
    switch(( uint ) ev->type() ) {
        case( uint ) QEvent::MouseMove
                : if( obj == static_cast < MainAppWindow *>( parent )->getInfoLabel() )  static_cast < MainAppWindow *>( parent )->getInfoLabel()->setText( tr( "Jest mysz" ) );
        else {
            if( obj == static_cast < MainAppWindow *>( parent )->getChooseInfo() )
                 static_cast < MainAppWindow *>( parent )->getChooseInfo()->setText( tr( "Jest mysz" ) );
            else {
                if( obj == parent )
                     static_cast < MainAppWindow *>( parent )->getInfoLabel()->setText( INFO_TEXT );
               
                static_cast < MainAppWindow *>( parent )->getChooseInfo()->setText( tr( "Wybierz:" ) );
            }
        }
        return true;
        default:
        return QObject::eventFilter( obj, ev );
    }
}
P-164628
Monika90
» 2017-09-06 11:24:08
Raczej powinieneś obsługiwać QEvent::Enter i QEvent::Leave.

Kod C++ wstawiamy między znacznikami [cpp] [/cpp]
P-164630
dlakin95
Temat założony przez niniejszego użytkownika
» 2017-09-06 13:30:31
Dzięki. Przy okazji zrozumiałem, że wykonując ruchy myszą w napisie wyłapuję też zdarzenie w oknie głównym dlatego nie aktualizowało po wyjściu.
P-164637
« 1 »
  Strona 1 z 1