Qt鼠标点击事件处理:显示鼠标点击位置(完整示例)

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

Qt 入门实战教程(目录)

前驱文章:

Qt Creator 创建 Qt 默认窗口程序(推荐)

什么是事件

事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。

事件(event)驱动的GUI窗口程序。

例如点击鼠标,按下按键。 在Qt中使用一个对象来表示一个事件,它继承自QEvent类。

常见事件


如鼠标事件(例如点击一下鼠标左键)、键盘事件(例如按下键盘的某个键)、定时事件、上下文菜单事件、关闭事件、拖放事件、绘制事件。

常见事件

void paintEvent(QPaintEvent *);//自定义绘制窗口内容

既然事件发生了,那么我们就需要对一个事件进行处理,就像我们点击了一下鼠标左键,程序就给了我们反馈一样,那么我们通过什么来对事件进行处理呢?

事件的处理

在QWidget类中提供了很多等待我们在子类中重写的虚函数,通常,我们通过重写这些函数来处理一些特定部件的典型事件。

当然,我们也可以通过在对象上安装事件过滤器。使用事件过滤器可以在一个界面类中同时处理不同子部件的不同事件。

鼠标按下事件的处理(示例)

创建项目

首先,创建一个名称为QtMousePressEvent的Qt默认的窗口程序。

参考 : Qt Creator 创建 Qt 默认窗口程序

Qt鼠标点击事件处理:显示鼠标点击位置(完整示例),Qt 入门实战教程(目录),qt,计算机外设,开发语言,c++,数据结构

添加鼠标事件响应函数

下面我们来尝试通过响应Qt的鼠标事件来显示鼠标的坐标。

打开Qt Creator >>编辑 >> 项目 >> Headers>> mainwindow.h

右键 class MainWindow >> Refactor >> Insert Virtual Function of Base Classes

如下图所示:

Qt鼠标点击事件处理:显示鼠标点击位置(完整示例),Qt 入门实战教程(目录),qt,计算机外设,开发语言,c++,数据结构

选择 QWidget >> mousePressEvent

Insertion options:

>> Insert definitions in implementation file >> OK

如下图所示:

Qt鼠标点击事件处理:显示鼠标点击位置(完整示例),Qt 入门实战教程(目录),qt,计算机外设,开发语言,c++,数据结构

显示鼠标位置

在窗口上添加控件用来显示鼠标的当前位置。

打开 Forms >> mainwindow.ui (双击打开)

在Ui文件中放置一个label起名为labelmove用来显示坐标的移动

Qt鼠标点击事件处理:显示鼠标点击位置(完整示例),Qt 入门实战教程(目录),qt,计算机外设,开发语言,c++,数据结构

修改 Label 控件的名字为 label_mouse_position

Qt鼠标点击事件处理:显示鼠标点击位置(完整示例),Qt 入门实战教程(目录),qt,计算机外设,开发语言,c++,数据结构

​显示鼠标按下的位置

打开 Sources >> mainwindow.cpp

添加头文件包含

>> #include <QMouseEvent>

>> MainWindow::mousePressEvent

在该函数内添加下面的代码:

void MainWindow::mousePressEvent(QMouseEvent *event)
{
    ui->label_mouse_position->move(event->pos());//鼠标点击哪里,label就在哪里显示
    auto pos = event->pos();//获得鼠标点击的位置
    QString text = QString("mouse postion (%1, %2)").arg(pos.x()).arg(pos.y());//生成文本内容
    ui->label_mouse_position->setText(text);//设置label的内容,用于显示
    ui->label_mouse_position->adjustSize();//根据内容调整label的大小,以显示全部内容
}

运行效果演示

Qt鼠标点击事件处理:显示鼠标点击位置(完整示例),Qt 入门实战教程(目录),qt,计算机外设,开发语言,c++,数据结构

Qt鼠标点击事件处理:显示鼠标点击位置(完整示例),Qt 入门实战教程(目录),qt,计算机外设,开发语言,c++,数据结构

代码下载

百度云

链接:https://pan.baidu.com/s/1XgN49hIvVhOLKuB3iLNaJQ

提取码:1234

Gitee 码云

https://gitee.com/carea/learn-qt-with-code/tree/master/QtMousePressEvent

更新记录

2023-08-13 QString格式化使用更加安全规范的方式文章来源地址https://www.toymoban.com/news/detail-695189.html

到了这里,关于Qt鼠标点击事件处理:显示鼠标点击位置(完整示例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • unity的ui怎么显示在鼠标点击位置

    第一种方法: 其实很简单,Input.mousePosition本身就是屏幕坐标(二维),不能直接使用是因为,屏幕空间以像素定义。屏幕的左下为(0,0);右上是(pixelWidth,pixelHeight),nn或者说以屏幕的左下角为(0,0)点,右上角为(Screen.width,Screen.height)而屏幕的基准点在屏幕中心(Scre

    2023年04月17日
    浏览(43)
  • 练习 Qt 实时显示鼠标坐标位置

    Qt 入门实战教程(目录) 本文是文章 Qt鼠标点击事件处理:显示鼠标点击位置(完整示例) 的一个作业(下文称之为“前驱课程”)。 前驱课程中,我们完整的展示了如何在QtCreator中添加成员函数,并使用重构工具添加函数定义。 只需要模仿前驱课程,即可完成本文的作业

    2024年02月10日
    浏览(50)
  • Qt获取鼠标移动事件,窗口内任意位置按下鼠标左键拖动窗口

    重写窗口的两个事件函数mousePressEvent和mouseMoveEvent即可: 在mousePressEvent 中,按下鼠标左键时,记录窗口坐标,其中窗口坐标的计算是由鼠标事件获取到鼠标在整个屏幕中的坐标(ev-globalpos()),然后再使用pos()获取到鼠标在窗口内的相对位置,两者之差就是窗口在整个屏幕上

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

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

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

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

    2023年04月09日
    浏览(42)
  • Android RecyclerView之最基本使用教程完整示例(列表/分隔线/点击事件响应/水波纹特效等实现)

    前面几篇文章我们学了Listview的一些基本使用和面向实用优化性的一些进阶自定义用法。这篇文章开始学习RecyclerView,还是先从一个最简单的示例开始。 本篇文章我们将用RecyclerView实现如下效果图(实现一个带分隔线有点击事件的列表,类似Listview ArrayAdapter的示例)  Listvi

    2024年02月08日
    浏览(49)
  • 【Qt】QCustomPlot组件跟随鼠标显示xy轴坐标位置

    目录 一、 问题描述 二、 解决方案 三、代码实现 一、 问题描述 如题所述。 二、 解决方案 自定义一个继承QCustomPlot类的实现类,重写mouseMove虚函数实现,从而获取鼠标位置,然后计算出点的坐标值,再利用QToolTip显示点坐标。 三、代码实现 继承自QCustomPlot组件的MFMCustomPl

    2024年02月11日
    浏览(49)
  • JavaScript处理鼠标各个事件的示例代码、说明和案例

    当使用JavaScript处理鼠标事件时,可以配合HTML代码来说明每个事件的使用方法、作用以及常见使用案例。 click(点击事件):当鼠标点击某个元素时触发。 作用:当按钮被点击时,弹出一个提示框显示\\\"按钮被点击了\\\"。 常见使用案例:在网页中创建一个按钮,当用户点击按钮

    2024年02月07日
    浏览(39)
  • Qt 鼠标移入QLabel、离开QLabel、点击QLabel显示不同的效果

    通过Qt建立一个窗口应用,经常会出现以下的应用场景:即鼠标移入、离开以及点击一个QLabel时,QLabel相应的样式发生改变,发生诸如“ 边框加粗 ”、“ 背景色改变 ”、“ 显示文本 ”等变化,本案例通过编写一个继承于QLabel的MyLabel类实现上述需求。通过重写enterEvent、le

    2024年02月13日
    浏览(47)
  • 【VTK】基于读取出来的 STL 模型,当用户点击鼠标左键时,程序将获取点击位置的点,显示其坐标,并设置它为模型的旋转原点

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 基于读取出来的 STL 模型,实现当用户点击鼠标左键时,程序将获取点击位置的点,显示其坐标,并设置它为模型的旋转原点。 详细流程为:点击 Select 按钮,鼠标具备选择的功能

    2024年02月14日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包