Russian Qt Forum
Ноябрь 25, 2024, 01:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Получать сигнал движения мыши от дочерних окон  (Прочитано 2464 раз)
bosfor
Гость
« : Октябрь 24, 2012, 09:34 »

В MainWindow переопределяю функцию mouseMoveEvent(QMouseEvent *). Но срабатывает она только при движении мыши в зонах не занятыми дочерними виджатами.
Как получать глобальный сигнал о движении мыши. Нужно просто как в скринсавере отследить активность мыши.  ??
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Октябрь 24, 2012, 10:17 »

Код
C++ (Qt)
bool QCoreApplication::notify ( QObject * receiver, QEvent * event ) [virtual]
Записан

Qt 5.11/4.8.7 (X11/Win)
bosfor
Гость
« Ответ #2 : Ноябрь 01, 2012, 10:11 »

Код
C++ (Qt)
bool QCoreApplication::notify ( QObject * receiver, QEvent * event ) [virtual]
у меня приложения на основе QMainWindow - помогите примером где мне унаследовать эту функцию ?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Ноябрь 01, 2012, 10:51 »

А причём тут QMainWindow Непонимающий
Открываешь в ассистенте описание QCoreApplication и видишь что последний является базовым для QApplication.
Далее просто перегружаешь QApplication::notify():
Код
C++ (Qt)
class MyApplication : public QApplication
{
public:
MyApplication( int& argc, char** argv )
: QApplication( argc, argv ) {}
bool notify( QObject* o, QEvent* e )
{
if( e->type() == QEvent::MouseMove )
{
QMouseEvent* me = static_cast< QMouseEvent* >( e );
// ...
}
return QApplication::notify( o, e );
}
};
 
int main( int argc, char** argv )
{
MyApplication app( argc, argv );
 
...
 
return app.exec();
}
 
« Последнее редактирование: Ноябрь 01, 2012, 10:53 от GreatSnake » Записан

Qt 5.11/4.8.7 (X11/Win)
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.136 секунд. Запросов: 22.