Qt鼠标单击与长按

这篇具有很好参考价值的文章主要介绍了Qt鼠标单击与长按。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Qt中,可以通过重载QWidget的mousePressEvent()、mouseReleaseEvent()和mouseMoveEvent()等事件来实现对鼠标事件的处理。判断鼠标是长按还是点击,可以通过记录鼠标按下的时间和释放的时间,通过两个事件的时间差来判断。以下是一个实现鼠标长按判断的示例代码

void MyWidget::mousePressEvent(QMouseEvent* event)
{
    if(event->button() == Qt::LeftButton)
    {
        m_pressTime = QTime::currentTime(); // 记录鼠标按下的时间
    }
}
void MyWidget::mouseReleaseEvent(QMouseEvent* event)
{
    if(event->button() == Qt::LeftButton)
    {
        int elapsed = m_pressTime.msecsTo(QTime::currentTime()); // 计算鼠标按下到释放的时间差
        if(elapsed >= 1000) // 判断时间差是否超过1秒
        {
            qDebug() << "Long press";
        }
        else
        {
            qDebug() << "Click";
        }
    }
}

我们通过记录鼠标按下的时间m_pressTime,然后在鼠标释放的事件中计算时间差elapsed,如果时间差超过1秒,则判断为长按,否则判断为点击文章来源地址https://www.toymoban.com/news/detail-736254.html

到了这里,关于Qt鼠标单击与长按的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT笔记——QSlider滑动条滚轮事件和点击鼠标位置事件问题

    需求:我们需要对一个滑动条 滚轮事件 和 点击到滑动条的位置 实时显示 问题:其中在做的时候遇到了很多的问题,一开始感觉很简单,现在将这些问题记录下来 ui图: 问题1:处理QSlider 滚轮事件的时候 这里有很大的问题,但是不知道原因,为什么会出现这样的原因,网上

    2024年02月01日
    浏览(43)
  • Qt鼠标点击事件处理:按Escape键退出程序

    Qt 入门实战教程(目录) 首先,创建一个名称为QtKeyEscape的Qt默认的窗口程序。 参考 :Qt Creator 创建 Qt 默认窗口程序 打开Qt Creator 编辑 项目 Headers mainwindow.h 右键 class MainWindow Refactor Insert Virtual Function of Base Classes 如下图所示: 选择 QWidget keyPressEvent Insertion options: Insert defini

    2024年02月09日
    浏览(36)
  • Qt窗口设置无边框不能移动,鼠标穿透后不能响应点击事件

      最近在做一个迷你小工具,准备干点不可描述的事情,想要短小强悍,始终在最顶层显示,同时不要自带的关闭按钮和边框,百度一下,发现是需要设置如下两个属性:   那么问题来了,这样的话一运行窗体就在正中间,而且无法拖动,就像这样   哪怕对于我这种

    2024年02月10日
    浏览(59)
  • Qt模拟键盘单击、组合键、鼠标移动的多种实现方式

    Qt模拟键盘点击分为两种情况: 情况一:模拟键盘输入到系统窗口,整个系统都接收这个模拟输入。 情况二:模拟键盘输入到指定的软件,只有指定的软件接收模拟输入。 情况一实现方式: 头文件:windows.h 使用 void keybd_event(BYTE bVk, BYTE bScan, DWORD dwFlags,DWORD dwExtraInfo); 参数:

    2024年02月10日
    浏览(40)
  • Qt Button实现按钮长按事件

    最近项目遇到一个需求,通过鼠标按钮长按一直发数据,鼠标松开立即离开。 想了一会儿大概有了几种思路(仅仅是思路,不一样可以实现) 1.重写鼠标事件,通过鼠标检测实现。 2.定时器触发实现。 3.通过某一个参数或者勾选命令实现。 QT按钮类及定时器应用 【QT】定时器

    2024年02月08日
    浏览(56)
  • Unity 单击、双击、长按事件处理

    想要一个工具,能够同时集成单击、双击、长按的功能 通过IPointerDownHandler, IPointerUpHandler, IPointerClickHandler这三个接口就可以监听点击状态,然后再通过不同的点击状态来处理相应的事件 由于可能同时存在多个事件,实际开发过程中会出现多余事件通知,如下: 同时拥有单击

    2024年02月11日
    浏览(56)
  • 微信小程序长按与单击事件触发

    方式一 wxml 片段 js 片段 解析 tap 触摸事件采用 catch 阻止事件冒泡 1.5.0之后支持 longpress 事件,手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发 方式二(不推荐) longtap 事件,但在触发时会同时触发单击事件,需配合 touchstart 和

    2024年02月12日
    浏览(86)
  • Qt - Qt5事件处理(鼠标事件)

    鼠标事件 ​ 鼠标事件包括鼠标的移动,鼠标键按下,松开,单击,双击等 使用鼠标事件时,加入对应头文件 常见的鼠标事件如下: QMouseEvent类包含了用于描述鼠标事件的参数。 当在一个窗口里按住鼠标按键、或移动、或释放就会产生鼠标事件QMouseEvent。 鼠标移动事件只会

    2023年04月09日
    浏览(39)
  • Qt 事件 < 二 >鼠标键盘事件

    Qt 是一个流行的 C++ 框架,用于构建跨平台的图形用户界面应用程序。在 Qt 中,处理键盘事件和鼠标事件是常见的任务,因为用户输入在交互式应用程序中至关重要。下面是关于 Qt 键盘事件和鼠标事件的学习总结: 键盘事件 (QKeyEvent)使用入门: 事件处理函数: 键盘事件通过

    2024年01月18日
    浏览(41)
  • 「Python|Selenium|场景案例」如何模拟鼠标单击、双击、右击、长按和拖拽等操作?

    本文主要介绍如何在使用selenium进行自动化测试的时候模拟各种鼠标操作。 在进行自动化测试的时候,我们可能会需要需要进行鼠标操作的场景,比如: 测试右击,查看是否网页是否屏蔽了右键菜单 面对滑块式登录验证方式,模拟拖拽 模拟前进或后退等鼠标扩展操作 ……

    2023年04月08日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包