当前位置: 首页 > article >正文

qt中怎么在鼠标停留的位置上显示该点的坐标位置

需要重写控件的mouseMoveEvent方法。
1、自定义一个QLabel控件,然后重写QLabel的mouseMoveEvent
customlabel.h


#include <QWidget>
#include <QHBoxLayout>
#include <QLabel>

class CustomLabel : public QLabel
{
    Q_OBJECT
public:
    explicit CustomLabel(QWidget *parent = nullptr);
    void setPiture(QString path);
    void paintLine(QPoint startPoint, QPoint endPoint);

protected:
    void mouseMoveEvent(QMouseEvent* event) override;
signals:

private:
    QHBoxLayout* m_layout;
    QList<QPoint> m_pointList;
};

customlabel.cpp


#include "customlabel.h"
#include <QMouseEvent>
#include <QToolTip>

CustomLabel::CustomLabel(QWidget *parent)
    : QLabel{parent}
{
    setMouseTracking(true);
    show();
}

void CustomLabel::mouseMoveEvent(QMouseEvent *event)
{
    QPoint pos = event->pos();
    QString positionString = QString("X: %1, Y: %2").arg(pos.x()).arg(pos.y());
    // 设置工具提示文本
    QToolTip::showText(event->globalPos(), positionString, this);
    QColor color(Qt::red);
    QPalette palette;
    palette.setColor(QPalette::Text,color);
    QToolTip::setPalette(palette);
}

2、在主界面widget中使用CustomLabel。
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    CustomLabel* label = new CustomLabel(this);
    ui->verticalLayout_2->addWidget(label);
}
3、看效果

鼠标箭头处显示坐标


http://www.kler.cn/a/105284.html

相关文章:

  • 敏捷or瀑布: Salesforce项目应该选哪一个?
  • 常见面试题-MySQL专栏(一)
  • vscode Coder Runner 运行C++
  • JVM | 命令行诊断与调优 jhsdb jmap jstat jps
  • 基于YOLOv8模型和UA-DETRAC数据集的车辆目标检测系统(PyTorch+Pyside6+YOLOv8模型)
  • 50.MongoDB快速入门实战
  • Java Object类详解
  • Controller接收Postman的raw参数时,属性值全部为空
  • Python:控制台输入密码passwod的方法
  • 全面解析优化企业Microsoft 365网络的加速方案
  • 数据结构笔记——树和图(王道408)(持续更新)
  • 【每日一题Day359】LC2520统计能整除数字的位数 | 数学模拟
  • php学习笔记
  • Ubuntu环境下DOSBOX的配置
  • 【linux系统】服务器安装Pycharm
  • Fiddler抓包VSCode和探索
  • 基于Pytorch的驾驶员分心行为实时检测
  • 对比Vue2和Vue3的自定义指令
  • 2023-10-26 用C语言实现一个大整数加法
  • PROFINET通信介绍