鼠标坐标

1. 窗口坐标( 相对于窗口)
Qpoint QMouseEvent::pos(); 或 x() 或 y()
2. 全局坐标( 相对于屏幕)
Qpoint QMouseEvent::globPos(); 或 screenPos();
int x = cursor().pos().x(); 或 globalX();
int y = cursor().pos().y(); 或 globalY();
3. 窗口坐标转全局坐标
mapToGlobal()
4. 全局坐标转窗口坐标
mapFromGlobal()

控件坐标

控件相对于父窗口的坐标:QPointQWidget::pos()

鼠标事件

1. 按下
void mousePressEvent(QMouseEvent *event)
{if(event->button() == Qt::LeftButton)  // 左键按下{}}
2. 移动
自动触发:setMouseTracking(true);
void mouseMoveEvent(QMouseEvent *event)
{if(event->buttons() & Qt::LeftButton){ }
}
3. 释放
void mouseReleaseEvent(QMouseEvent *event)
{}
4. 双击
void mouseDoubleClickEvent(QMouseEvent *event)
{}
5. 滚轮
void wheelEvent(QWheelEvent *event)
{if(event->delta() > 0)// 当滚轮远离使用者时{}else//当滚轮向使用者方向旋转时{}
}

触摸事件
设置窗口属性:setAttribute(Qt::WA_AcceptTouchEvents); // 窗口接受触摸事件
相对于窗口的位置:TouchPoint::pos()/lastPos()/lastScreenPos()
区域:TouchPoint::rect();

bool event(QEvent * event)
{switch (event->type()){case QEvent::TouchBegin: // 手指与触摸屏开始接触时{break;}case QEvent::TouchUpdate: // 手指与触摸屏接触过程中{break;}case QEvent::TouchEnd: // 手指离开触摸屏{QTouchEvent *touchEvent = static_cast<QTouchEvent *>(event);QList<QTouchEvent::TouchPoint> tpList = touchEvent->touchPoints(); // 触控点for (int i = 0; i < tpList.size(); i++){QTouchEvent::TouchPoint tp = tpList.at(i); // event里的数值在touchPoints里tp.lastPos();}event->accept();break;}default: break;}return QWidget::event(event);
}

焦点

当前窗口:QApplication::activeWindow()
当前窗口内的控件:QApplication::focusWidget()

QWidget *currentitem=QApplication::focusWidget();
if((currentitem!=NULL)&&(currentitem->inherits("QLineEdit"))) // 是否是某个类的实例
{QLineEdit *p=qobject_cast<QLineEdit *>(currentitem);
}

Qt:坐标/鼠标/触摸相关推荐

  1. qt linux实现鼠标位置自动移动,【已解决】qt中鼠标能显示但是无法移动

    [问题] 在完成了Linux kernel中的对应的一个模拟鼠标的输入设备(input device)easypoint驱动后,验证了该驱动可以正常工作了,输入 cat /dev/input/even ...

  2. Qt QPainter鼠标绘制线条、矩形、多边形

    Qt通过鼠标绘制线条.矩形.多边形本质都是根据鼠标的坐标位移,使用QPainter的自带的函数进行绘制.具体代码如下: graphicspainter.h #ifndef GRAPHICSPAINTE ...

  3. QT中鼠标的绝对位置和相对位置

    参考 Qt获取鼠标位置(绝对位置.相对位置) https://blog.csdn.net/owen7500/article/details/51035078/ qt鼠标事件总结(坐标,跟踪,点击判断) ...

  4. QT中鼠标位置获取问题之event-globalPos()与pos()函数

    QT中鼠标位置获取问题之event->globalPos()与pos()函数 标签: Qt 2015-01-03 19:41 820人阅读 评论(0) 收藏 举报 分类: Qt 版权声明:本文为 ...

  5. [转载]Qt之鼠标样式

    原文地址:Qt之鼠标样式作者:一去丶二三里 Qt中可以自定义鼠标样式,无论是为了美观,还是遵从同行业标准,或者说是界面友好性都需要了解. 使用setCursor(Qt::CursorShape)来设置 ...

  6. [转载]Qt之鼠标样式_vortex_新浪博客

    原文地址:Qt之鼠标样式作者:一去丶二三里 Qt中可以自定义鼠标样式,无论是为了美观,还是遵从同行业标准,或者说是界面友好性都需要了解. 使用setCursor(Qt::CursorShape)来设置 ...

  7. 【QT 5 设置自定义标题栏+学习:《QT实现鼠标拖动调整窗口大小》+基础样例】

    [QT 5 设置自定义标题栏+学习:<QT实现鼠标拖动调整窗口大小>+基础样例] 1.说明 2.实验环境 3.实验目的 4.参考文章 5.实验步骤 (1)下载代码,运行没有错误. (2)加 ...

  8. QT 录制鼠标键盘回放

    QT 录制鼠标键盘回放 前段时间因为朋友想要解放双手想要把一些操作录制回放 所以做了这个小项目 因为我目前运用的QT只能在程序中去记录鼠标跟键盘的操作 所以网上找了找方法 有钩子函数使用 所以运用了钩 ...

  9. Qt动画与Qt坐标小记

    Qt动画 转载自:  <http://jingyan.baidu.com/article/154b46315757b628ca8f4116.html> 和   <http://blo ...

最新文章

  1. oracle伪客户端的安装(oracle不安装客户端)
  2. 企业价值观念形成的四个阶段
  3. PHP中不用第三个变量交换两个变量的值
  4. 马宁的Windows Phone 7开发教程(3)——XNA下使用MessageBox和软键盘
  5. Vue——全局element-resize-detector监听DOM元素
  6. postgresql修炼之道_PostgreSQL内核开发学习资料
  7. 支付宝借呗还款利息为什么都不一样?
  8. C++11 委托构造函数
  9. python笔记:datetime模块中的函数
  10. 设计模式(9)——模板方法模式
  11. 【工业控制】基于matlab多变量动态矩阵预测控制(DMC)【含Matlab源码 1499期】
  12. java加密不可逆,32位不可逆加密算法Java实现
  13. java 多线程和spring之间的坑
  14. 游戏编程所需要的知识
  15. 思科CCNP在OSPF中设置LSA的简单命令汇总
  16. 抗击奥密克戎回忆录:“旌旗十万斩阎罗”,我再一次杨康了
  17. Notepad++的JsonViewer 插件安装失败的解决
  18. 计算机域名怎么查看?如何查看电脑域名?
  19. Jmeter读取excel表格数据响应数据乱码
  20. STM32F4基于DMA的多通道ADC采集——遇到的问题解决

热门文章

  1. 被踢出局!贾跃亭真栽了
  2. 2022-0828-0640,中文分词,逆向最大匹配算法 RMM
  3. linux 命令:which详解
  4. 惨遭腾讯面试官吊打高并发系统设计,回来学习2400小时后成功复仇!
  5. php 怎么打开一个pdf,pdf是什么?用什么打开?
  6. 微电子电路——期中总结
  7. 刚开始做软件测试,一般工资范围是多少?
  8. Java笔记——Java多线程~
  9. abb 机械手臂 示例程序
  10. 你需要的导航网站,这里都有