Qt学习笔记(三)鼠标事件
2018-02-01 15:40
288 查看
通过重载相关部件的鼠标事件,来进行自定义。
void mousePressEvent(QMouseEvent* event);//当鼠标按下时调用
void mouseReleaseEvent(QMouseEvent *event);//当鼠标松开时调用
void mouseMoveEvent(QMouseEvent *event);//当鼠标按下时移动才会调用,为默认情况。
(1)可以通过设置this->setMouseTracking(true);来使鼠标无须按下也可调用mouseMoveEvent;
设置时要从父组件逐个设置到相应的子部件。
(2)或者通过重载bool event(QEvent *event);来实现实时获取鼠标移动的事件
bool event(QEvent *event)
{
if (event->type() == QEvent::HoverEnter || event->type() == QEvent::HoverLeave|| event->type() == QEvent::HoverMove)
{
相应的事件
}
}
下面介绍一些相关的知识:
1.获取鼠标位置
QHoverEvent* pHoverEvent = static_cast<QHoverEvent *>(event);
int x = pHoverEvent->pos().x();
int y = pHoverEvent->pos().y();//该位置为相对于程序窗体的位置
int x = event->globalX();//该位置为相对于整个屏幕的位置
int y = event->globalY();
2.获取鼠标按下哪个键
if (event->buttons() & )//如果按下左键,类似的有按下右键、双击、滚轮
Qt::NoButton
Qt::LeftButton
Qt::RightButton
Qt::MidButton
3.设置鼠标样式
setCursor(Qt::SizeVerCursor);
void mousePressEvent(QMouseEvent* event);//当鼠标按下时调用
void mouseReleaseEvent(QMouseEvent *event);//当鼠标松开时调用
void mouseMoveEvent(QMouseEvent *event);//当鼠标按下时移动才会调用,为默认情况。
(1)可以通过设置this->setMouseTracking(true);来使鼠标无须按下也可调用mouseMoveEvent;
设置时要从父组件逐个设置到相应的子部件。
(2)或者通过重载bool event(QEvent *event);来实现实时获取鼠标移动的事件
bool event(QEvent *event)
{
if (event->type() == QEvent::HoverEnter || event->type() == QEvent::HoverLeave|| event->type() == QEvent::HoverMove)
{
相应的事件
}
}
下面介绍一些相关的知识:
1.获取鼠标位置
QHoverEvent* pHoverEvent = static_cast<QHoverEvent *>(event);
int x = pHoverEvent->pos().x();
int y = pHoverEvent->pos().y();//该位置为相对于程序窗体的位置
int x = event->globalX();//该位置为相对于整个屏幕的位置
int y = event->globalY();
2.获取鼠标按下哪个键
if (event->buttons() & )//如果按下左键,类似的有按下右键、双击、滚轮
Qt::NoButton
Qt::LeftButton
Qt::RightButton
Qt::MidButton
3.设置鼠标样式
setCursor(Qt::SizeVerCursor);
相关文章推荐
- javascript鼠标事件汇总
- JS键盘或鼠标事件
- pyhook监听鼠标事件和键盘事件
- HTML onmousedown 事件属性 关于鼠标按键的问题;
- Unity 如何检测鼠标双击事件
- 让窗体不响应鼠标双击事件
- js鼠标滚动事件
- flex图表鼠标事件
- 关于Actionscript 3.0中的鼠标事件
- DOMMouseScroll,onmousewheel 鼠标滚动事件js
- jquery事件机制扩展插件 jquery鼠标右键事件
- CListCtrl控件主要事件及LVN_ITEMCHANGED消息和鼠标双击列表项事件的处理
- HTML DOM Event对象中onmousedown与模拟鼠标事件
- Qt鼠标响应事件
- <li>的鼠标移入移出事件和点击事件分别实现为当前li添加样式,删除其他li样式
- QTP模拟鼠标和键盘事件整理
- jQuery鼠标事件
- js鼠标事件集合
- 网页鼠标滚轮事件(滚滚屏)的获取及理解
- 值得收藏的HTML DOM事件和鼠标键盘事件