Исходник
main.cpp
#include "mousesee.h"
#include <QtGui>
int main(int argc, char** argv)
{
QApplication app(argc,argv);
MouseSee mouse;
mouse.resize(100,100);
mouse.show();
return app.exec();
}
mousesee.h
#ifndef MOUSESEE_H
#define MOUSESEE_H
#include <QtGui>
class MouseSee : public QLabel
{
Q_OBJECT
public:
MouseSee(QWidget *parent = 0);
protected:
virtual void timerEvent(QTimerEvent *event);
void Event(QString strX = "", QString strY = "");
private:
int t_updateID;
};
#endif // MOUSESEE_H
mousesee.cpp
#include "mousesee.h"
MouseSee::MouseSee(QWidget *parent) :
QLabel(parent)
{
setAlignment(Qt::AlignCenter);
t_updateID = startTimer(30); // запуск таймера
}
void MouseSee::Event(QString strX, QString strY) // Функция отображения курсора
{
setText("\n Mouse MoveX = " + strX
+ "\n Mouse MoveY = " + strY);
}
void MouseSee::timerEvent(QTimerEvent *event) // Основа
{
if (event->timerId() == t_updateID)
{
Event(QString::number(cursor().pos().x()),
QString::number(cursor().pos().y()));
// cursor().pos().x() реальное положение курсора
}
}
по таймеру чекать cursorPos(),больше нет вариантов
я сделал по твоему варианту (реально больше ни как нельзя и не нужно)... программка pixeltool примерно также работает