1
0
mirror of https://gitee.com/drabel/LibQQt.git synced 2025-01-04 10:18:44 +08:00
LibQQt/test/testmouselocker11/qqtmouselocker.h
tianduanrui 5d2481792c add a testcase.
test qqtmouselocker, support windows now.
2019-08-24 09:01:56 +08:00

45 lines
1.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef QQTMOUSELOCKER_H
#define QQTMOUSELOCKER_H
#include <QObject>
//#include "qqt-local.h"
#define QQTSHARED_EXPORT
/**
* @brief The QQtMouseLocker class
* 将鼠标移动轨迹锁定在窗口内部。
*
* 使用方法:
* QWidget* w;//需要锁定鼠标的窗口。
* w->setMouseTracking(True);//必要
* //w->setFocusPolicy(Qt::StrongFocus);//不必要设置Focus。
* QQtFrameMouseLocker* helper = new QQtFrameMouseLocker(parent) ;
* w->installEventFilter(helper);//一步设置即可。
* 允许使用这一个句柄为多个窗口安装,各自独立工作,互不干扰。
*
* 工作原理:
* 在鼠标move的时候截获鼠标消息将其锁定。
* 支持所有QWidget及其子类不支持QMainWindow。
* 支持windows、macOS、Linux等桌面操作系统。
*/
class QQtMouseLockerPrivate;
class QQTSHARED_EXPORT QQtMouseLocker : public QObject
{
Q_OBJECT
public:
QQtMouseLocker ( QObject* parent = 0 );
~QQtMouseLocker();
// QObject interface
public:
virtual bool eventFilter ( QObject* watched, QEvent* event ) override;
private:
QQtMouseLockerPrivate* d_ptr;
Q_DECLARE_PRIVATE ( QQtMouseLocker )
};
#endif // QQTMOUSELOCKER_H