Здравствуйте, гость ( Вход | Регистрация )
AD | Дата 26.3.2010, 13:36 |
Удалось попасть в глобальный фильтр событий, но для этого надо было добавить следующую строчку кода в main:
Блин. Все-таки стоит ассистент читать внимательно. Вот эта фраза помогла сделать правильное переопределение на нужный виджет функции keyEventPress: Цитата void QWidget::keyPressEvent ( QKeyEvent * event ) [virtual protected] This event handler, for event event, can be reimplemented in a subclass to receive key press events for the widget. A widget must call setFocusPolicy() to accept focus initially and have focus in order to receive a key press event. If you reimplement this handler, it is very important that you ignore() the event if you do not understand it, so that the widget's parent can interpret it. The default implementation closes popup widgets if the user presses Esc. Otherwise the event is ignored. Вызвал функцию setFocusPolicy , что и помогло. Фильтр событий вообще не понадобился. |
|
AD | Дата 25.3.2010, 16:43 |
вопрос не по теме по-моему. Еще как по теме. Ни к какой другой теме он не относится. Тот же самый фильтр событий. попробуй вынести вынеси интерфейс и реализацию в application.h application.cpp Попробую. Хм... Приложение вообще не попадает в эту функцию.... |
|
kwisp | Дата 25.3.2010, 16:06 |
вопрос не по теме по-моему. попробуй вынести вынеси интерфейс и реализацию в application.h application.cpp |
|
AD | Дата 25.3.2010, 15:45 |
Не удается такой финт ушами. Реально, нужна помощь для того, чтобы разобраться.... Я не понимаю, как еще надо переопределить этот класс: main.h
main.cpp
Выдаются следующие ошибки: Цитата main.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall Application::metaObject(void)const " (?metaObject@Application@@UBEPBUQMetaObject@@XZ) main.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall Application::qt_metacast(char const *)" (?qt_metacast@Application@@UAEPAXPBD@Z) main.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall Application::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@Application@@UAEHW4Call@QMetaObject@@HPAPAX@Z) |
|
kwisp | Дата 25.3.2010, 13:26 |
А что по поводу фокуса ввода? Можно какой-нибудь маленький примерчик? ну напиши сам маленький тестик. посомотри как фокус ввода меняется. набери в асситенте Keyboard Focus. |
|
AD | Дата 25.3.2010, 11:27 |
А что по поводу фокуса ввода? Можно какой-нибудь маленький примерчик? |
|
kwisp | Дата 25.3.2010, 10:37 |
AD, и я повторюсь. Попробуй унаследоваться от QApplication переопределить в этом классе фильтр событий! |
|
AD | Дата 25.3.2010, 10:29 |
если не ошибаюсь если в QApplication переопределить фильтр событий то он будет глобальным для всего приложения. Я ведь его уже привел?!!!. Я переопределил эту функцию в классе, который является наследником QMainWindow. Повторюсь, не помогает как ты можешь быть уверен что setFocus() вызванный в конструкторе , гарантирует сохранность фокуса ввода после получения окном события отрисовки, нажатия клавиш мыша таба? А где тогда это сделать? Куда ткнуть вызов этой функции? |
|
kwisp | Дата 25.3.2010, 10:21 |
Какой глобальный фильтр событий? Где он должен быть? Как его вызвать? кто то первый раз за мужем. если не ошибаюсь если в QApplication переопределить фильтр событий то он будет глобальным для всего приложения. как ты можешь быть уверен что setFocus() вызванный в конструкторе , гарантирует сохранность фокуса ввода после получения окном события отрисовки, нажатия клавиш мыша таба? |
|
AD | Дата 25.3.2010, 9:59 |
от куда ты знаешь где фокус будет после создания окна нажатия на кнопки мыши и таб.? что с глобальным фильтром событий? Можно по русски? Прости, нифига не понял. Какой глобальный фильтр событий? Где он должен быть? Как его вызвать? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 19.4.2024, 14:27 |