Название: как переопределить qwsEventFilter? Отправлено: lisarden от Апрель 01, 2011, 23:10 Никак не могу разобраться каким образом можно определить qwsEventFilter! Перерыл весь инет, но результата нет.
Помогите какие-нибудь примером или советом Название: Re: как переопределить qwsEventFilter? Отправлено: madRoger от Апрель 01, 2011, 23:35 Может сначала поупражняться с обычным eventFilter. Суть та одна.
Название: Re: как переопределить qwsEventFilter? Отправлено: lisarden от Апрель 01, 2011, 23:54 с этим я уже упражнялся. Он садится на какой-нибудь виджет и далее всё просто. А мне нужно не на виджет а на всю апликуху.
Сделал так: myapp.h Код: class MyApp : public QApplication Код: #include "myapp.h" main.c Код: #include <QtGui/QApplication> Не пишутся на консоль эти "pressed"/"released". Что не так? Название: Re: как переопределить qwsEventFilter? Отправлено: madRoger от Апрель 01, 2011, 23:59 Цитировать e->type == QEvent::KeyPress Вы сравниваете разные типы. Попробуйте e->type() ==QWSEvent::KeyUPD: Если использовать e->type() ==QWSEvent::Key , то, судя по документации, можно определить только активность клавиш. Но разобрать, нажата или отпущена клавиша не получится. Можно преобразовать тип QWSEvent к QEvent так: QEvent *event = (QEvent *)e; Тогда можно сравнивать как у вас в коде, то есть можно определить момент нажатия и момент отпускания. if(event->type() == QEvent::KeyPress) {......и так далее Саму клавишу можно определить аналогично: QKeyEvent *keyEvent = (QKeyEvent *)e; if( keyEvent->key() == Qt::Key_Return ) {... и так далее. Сам не проверял, предполагаю исходя из доков. Название: Re: как переопределить qwsEventFilter? Отправлено: lisarden от Апрель 02, 2011, 09:10 предположим, что с ивентами я не правильно работаю. Но если вставить отладку без условий, то в этот обработчик вообще исполнение не попадает.
я тут подумал, что проблема в версии Qt: ведь она у меня комповая, а не Qt-embedded. Может qws и не должен вовсе работать? Название: Re: как переопределить qwsEventFilter? Отправлено: madRoger от Апрель 02, 2011, 11:16 Возможно, проблема с версией и настройками Qt. Раньше embedded linux надо было качать отдельно. Насколько я помню, библиотека qt с поддержкой всего и вся пошла с 4.6.0. У нее в названии был префикс everywhere. И конечно же необходимо правильно настроить библиотеку. Советую обратиться к офф.сайту, там есть инфа.
http://doc.qt.nokia.com/latest/qt-embedded-install.html (http://doc.qt.nokia.com/latest/qt-embedded-install.html) http://doc.qt.nokia.com/latest/qws.html (http://doc.qt.nokia.com/latest/qws.html) Скачать можно из архива на ftp nokia: ftp.qt.nokia.com/qt/source/ Название: Re: как переопределить qwsEventFilter? Отправлено: lisarden от Апрель 02, 2011, 13:48 Действительно, после того, как руками собрал библиотеку компилятором arm-linux-gnueabi и запустил на арме, то обработчик вида:
Код: bool MyApp::qwsEventFilter(QWSEvent *e) |