| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Обработка mouseMoveEvent |
| Автор: kuvshinka 3.9.2013, 13:50 | ||||
в конструкторе чистого проекта (пустая mainwindow-форма) задаю
затем
метод срабатывает только при уходе курсора мыши за пределы формы приложения, а не при каждом перемещении курсора по форме, как это и должно быть...что я неправильно сделала? Никаких других методов (типа leaveEvent) в MainWindow нет... |
| Автор: bsa 3.9.2013, 14:11 |
| В центре mainwindow должен находиться так называемый central widget. Лучше работай с ним, а не с main window. |
| Автор: kuvshinka 3.9.2013, 19:13 |
| ничего не понимаю - под виндой mouseMoveEvent вообще никогда не вызывается (даже при выходе мыши за форму приложения)..действительно, на Mainwindow есть centralWidget, на нем - все остальные виджеты и что из этого? mouseMoveEvent-то является членом класса MainWindow...что значит "Лучше работай с centralWidget"? |
| Автор: kuvshinka 3.9.2013, 21:52 |
| не хватало задания setMouseTracking для centralwidget |
| Автор: kuvshinka 4.9.2013, 15:31 |
| Мне нужно знать координаты курсора мыши в ЛЮБОЙ точке формы приложения — для этого мне нужно для КАЖДОГО виджета формы задать свойство MouseTracking в true? Эксперимент показал, что вроде да, но виджетов у меня ооочень много и можно ли как-то по-другому, более рационально, решить данный вопрос? И еще - при клике левой кнопкой мыши чисто на форму ее метод (метод данного класса) mousePressEvent срабатывает, а при клике левой кнопкой мыши на любой из виджетов данной формы — нет (только при клике правой кнопкой мыши или колесиком)...почему такое может быть? Ведь вроде для срабатывания mousePressEvent никаких других свойств задавать не надо... |
| Автор: bsa 5.9.2013, 13:01 |
| kuvshinka, тебе это знать надо постоянно или периодически? Если периодически, то можно повесить таймер, брать координаты курсора (QCursor::pos()) и мапить на окно. |
| Автор: kuvshinka 5.9.2013, 19:22 |
| нет, мне нужно отслеживать каждое перемещение курсора (т.е. постоянно)!!! |