程序分两个部分,一部分实现可拖动的准星,一部分实现在准星拖动时刷新准星所在窗口的句柄信息。
一个主窗口类:MainWindow,负责主窗口显示以及在收到开始信号后,定时刷新当前鼠标所在窗口信息并显示,收到停止信号后停止刷新。
一个可拖动的准星类:准星拖动以一个QWidget的派生类实现,在此类中,鼠标左键按下发出开始信号,左键释放发出停止信号。按下并拖动过程中,将准星QWidget移动到鼠标所在位置。
这是我静态编译好的可执行程序,单文件执行。
FormDragWidget类负责准星操作,主要是重载鼠标按键按下事件、鼠标移动事件、鼠标按键释放事件:
#ifndef FORMDRAGWIDGET_H
#define FORMDRAGWIDGET_H
#include <QWidget>
namespace Ui {
class FormDragWidget;
}
QT_BEGIN_NAMESPACE
QT_END_NAMESPACE
class FormDragWidget : public QWidget
{
Q_OBJECT
public:
explicit FormDragWidget(QWidget *parent = 0);
~FormDragWidget();
signals: