概述
Qt鼠标事件
QMouseEvent类用来表示一个鼠标事件,在窗口部件中按下鼠标或者移动鼠标光标时,都会产生鼠标事件。利用QMouseEvent类可以获知鼠标是哪个键按下了,鼠标指针的当前位置等信息。通常是重定义部件的鼠标事件处理函数来进行一些自定义的操作。QWheelEvent类用来表示鼠标滚轮事件,主要用来获取滚轮移动的方向和距离。
默认情况下,只有在按下鼠标按钮(不释放)时移动鼠标,才会产生鼠标移动事件,否则不会产生鼠标移动事件。除非使用QWidget::setMouseTracking()主动去开启鼠标跟踪,这时才会实时产生鼠标移动事件。
当在窗口部件内按下鼠标按钮时,Qt将自动抓取鼠标。窗口部件将持续接收鼠标事件,直到释放鼠标按钮。
鼠标事件包含一个特殊的接收标志,指示接收者是否需要该事件。如果不想鼠标事件被窗口部件处理,你应该调用ignore()。此时鼠标事件将在父窗口部件向上传播,直到窗口部件使用accept()接收鼠标事件,或者过滤掉鼠标事件。(注意:如果将鼠标事件传播到已为其设置 Qt::WA_NoMousePropagation的组件时,则该鼠标事件将不会在上一级组件中进一步传播)
1. QMouseEvent Class
Header : #include<QMouseEvent>
qmake : QT += gui
inherits : QInputEvent
QMouseEvent类的主要接口
1.1 Public Functions
// 构造函数
QMouseEvent(QEvent::Type type, const QPointF &localPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
QMouseEvent(QEvent::Type type, const QPointF &localPos, const QPointF &screenPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
QMouseEvent(QEvent::Type type, const QPointF &localPos, const QPointF &windowPos, const QPointF &screenPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
QMouseEvent(QEvent::Type type, const QPointF &localPos, const QPointF &windowPos, const QPointF &screenPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::MouseEventSource source);
// 返回产生鼠标事件的鼠标按键
// 如果返回值为:Qt::NoButton,则产生的鼠标事件是鼠标移动事件
Qt::MouseButton QMouseEvent::button() const
/*
* 返回生成鼠标事件的鼠标按键
* 返回的鼠标按键值是使用OR运算符的Qt::LeftButton, Qt::RightButton, Qt::MidButton。
* 对于鼠标移动事件,返回值为:所有按键都被按下
* 对于单击鼠标和双击鼠标事件,返回值为:被点击的鼠标按键
* 对于释放鼠标按键事件,不包含此鼠标事件的返回状态
*/
Qt::MouseButtons QMouseEvent::buttons() const
/*
* 返回鼠标事件的标志
* 鼠标事件标志提供有关鼠标事件的附加信息。
*/
Qt::MouseEventFlags QMouseEvent::flags() const
// 当鼠标事件发生时,返回鼠标光标的全局位置
// (此全局位置是以显示器屏幕左上角为坐标系原点)
QPoint QMouseEvent::globalPos() const
// 当鼠标事件发生时,返回鼠标光标的全局x轴方向坐标位置
int QMouseEvent::globalX() const
// 当鼠标事件发生时,返回鼠标光标的全局y轴方向坐标位置
int QMouseEvent::globalY() const
// 当鼠标事件发生时,返回鼠标光标在接收事件窗口中的位置
// (窗口部件左上角为坐标系原点)
QPoint QMouseEvent::pos() const
// 当鼠标事件发生时,返回鼠标光标在接收事件窗口部件的x轴方向坐标位置
int QMouseEvent::x() const
// 当鼠标事件发生时,返回鼠标光标在接收事件窗口部件的y轴方向坐标位置
int QMouseEvent::y() const
// 返回鼠标光标(QPointF)相对于接收事件的组件或项目的位置
const QPointF &QMouseEvent::localPos() const
// 返回鼠标光标(QPointF)相对于接收事件的屏幕的位置
const QPointF &QMouseEvent::screenPos() const
// 返回鼠标光标(QPointF)相对于接收事件的窗口的位置
const QPointF &QMouseEvent::windowPos() const
// 返回有关鼠标事件源的信息
Qt::MouseEventSource QMouseEvent::source() const
2.例程
最后
以上就是苗条柠檬为你收集整理的Qt鼠标事件Qt鼠标事件的全部内容,希望文章能够帮你解决Qt鼠标事件Qt鼠标事件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复