Qt实现画的图片移动

要实现左键点击鼠标时图片跟着鼠标移动,可以通过以下步骤来实现:1. 在QGraphicsView的构造函数中设置鼠标跟踪属性,以便能够捕获鼠标事件。```cpp
QGraphicsView::QGraphicsView(QWidget *parent) : QGraphicsView(parent)
{setMouseTracking(true);
}
```2. 在QGraphicsView中重写鼠标按下、鼠标移动和鼠标释放事件的处理函数。```cpp
void QGraphicsView::mousePressEvent(QMouseEvent *event)
{if (event->button() == Qt::LeftButton) {// 获取点击位置QPointF pos = mapToScene(event->pos());// 判断是否点击到图片if (scene()->itemAt(pos, QTransform()) == imageItem) {// 记录鼠标起始位置lastMousePos = pos;// 设置鼠标移动跟踪setDragMode(QGraphicsView::ScrollHandDrag);}}QGraphicsView::mousePressEvent(event);
}void QGraphicsView::mouseMoveEvent(QMouseEvent *event)
{if (dragMode() == QGraphicsView::ScrollHandDrag) {// 获取鼠标位置QPointF pos = mapToScene(event->pos());// 计算鼠标移动距离QPointF delta = pos - lastMousePos;// 更新图片位置imageItem->setPos(imageItem->pos() + delta);// 更新鼠标位置lastMousePos = pos;}QGraphicsView::mouseMoveEvent(event);
}void QGraphicsView::mouseReleaseEvent(QMouseEvent *event)
{if (event->button() == Qt::LeftButton) {// 停止鼠标移动跟踪setDragMode(QGraphicsView::NoDrag);}QGraphicsView::mouseReleaseEvent(event);
}
```3. 创建一个QGraphicsScene,并将QPixmap添加到场景中。```cpp
QGraphicsScene *scene = new QGraphicsScene(this);
QPixmap pixmap("image.png");
QGraphicsPixmapItem *imageItem = scene->addPixmap(pixmap);
```4. 创建一个QGraphicsView,并将QGraphicsScene设置给它。```cpp
QGraphicsView *view = new QGraphicsView(this);
view->setScene(scene);
```通过以上步骤,就可以实现左键点击鼠标时图片跟着鼠标移动的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/167129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode617合并二叉树

理解题意:相同节点位置上,都有数据的话,节点值相加,只有一方有数据的话,把有数据的部分及相关子树保留下来。 考察操作两棵二叉树,二叉树的遍历。 一般有两种解决方式: 递归|迭代。 区别&#x…

element 中文地址

Element - The worlds most popular Vue UI framework 2 Menu 菜单 | Element Plus 3 侦听器 | Vue.js vue中文官网

软件测试职业规划导图

公司开发的产品专业性较强,软件测试人员需要有很强的专业知识,现在软件测试人员发展出现了一种测试管理者不愿意看到的景象: 1、开发技术较强的软件测试人员转向了软件开发(非测试工具开发); 2、业务能力较强的测试人员转向了软件…

ubuntu创建新用户, 并赋予root权限

在Ubuntu上创建新用户可以通过adduser命令来完成。以下是创建新用户的基本步骤: 打开终端:你可以按下Ctrl Alt T来打开终端。 使用sudo命令以管理员权限执行adduser命令。例如,如果你要创建一个名为newuser的新用户,运行以下命…

【EI会议征稿】第三届电子信息技术国际学术会议(EIT 2024)

The 3rd International Conference on Electronic Information Technology 第三届电子信息技术国际学术会议(EIT 2024) 电子信息工程在我国信息化产业的发展过程中举足轻重,且随着现代社会的发展,航空航天领域、制造业领域和智能…

LSTM+CNN实现时间序列预测(负荷预测)

文章目录 LSTM+CNN实现时间序列预测(PyTorch版)基于PyTorch搭建LSTM+CNN模型实现风速时间序列预测配置类时序数据集的制作数据归一化数据集加载器搭建LSTM+CNN模型定义模型、损失函数、优化器模型训练可视化结果十、完整源码LSTM+CNN实现时间序列预测(Keras版)源码模型训练绘制…

每日一题:LeetCode-102.二叉树的层序遍历

每日一题系列(day 03) 前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &#x1f50e…

NX二次开发UF_CSYS_set_wcs 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_set_wcs Defined in: uf_csys.h int UF_CSYS_set_wcs(tag_t csys_id ) overview 概述 Sets the work coordinate system to the prototype coordinate system whose tag y…

为什么技术干不过产品?

近年来,我们经常会听到一些关于技术和产品之间关系的讨论,包括最近的ChatGPT之父奥特曼被董事会开除事件。在这个问题上,有人认为技术应该优于产品,因为技术是实现产品的基础。然而,也有人认为产品比技术更重要&#x…

基于低代码平台搭建应用程序

目录 一、背景 二、如何基于低代码开发应用? 1.创建数据表 2.添加数据表属性 3.配置功能 4.数据筛选 5.数据集显示&功能发布 三、写在最后 一、背景 很多时候,市场上的管理软件鱼龙混杂,找一些外包团队在实际应用中效果并不理想&#xff…

企业微信平台:连接你我,引领数字化未来

近年来,随着移动互联网的飞速发展,社交媒体平台如微信已经成为人们生活中必不可少的一部分。对于企业而言,微信平台不仅是一个重要的宣传渠道,更是实现数字化转型的关键工具。本文将探讨企业微信平台的发展趋势、运营策略以及成功…

开源还是闭源(=°Д°=)!!趋势表明,开源技术在诸多领域中日益受到重视

开源和闭源,两种截然不同的开发模式,对于大模型的发展有着重要影响。开源让技术共享,吸引了众多人才加入,推动了大模的创新。而闭源则保护了商业利益和技术优势,为大模型的商业应用提供了更好的保障。 一、开源和闭源的…

堆和前缀树

1 堆 1.1 堆结构 堆是用数组实现的完全二叉树结构完全二叉树中如果每棵树的最大值都在顶部就是大根堆,最小值在顶部就是小根堆堆结构的heapInsert就是插入操作,heapify是取出数组后进行堆结构调整的操作优先级队列结构就是堆结构 public class Heap {…

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(三)

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(三) 不使用base64编码方式传递 #include <ros/ros.h> #include <signal.h> #include <sensor_msgs/Image.h> #include <message_filters/subscriber.h> #include <message_filter…

【正点原子STM32连载】第五十九章 T9拼音输入法实验(Julia分形)实验 摘自【正点原子】APM32F407最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子APM32F407最小系统板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html## 第五十…

关于 token 和证书

关于 token 和证书 在网络检测中&#xff0c;Token通常是指一种特殊的令牌&#xff0c;用于在分布式系统中进行资源控制和访问管理。Token可以用于验证客户端的身份、限制客户端的访问权限以及控制客户端对某些资源的使用。 在网络检测中&#xff0c;Token通常用于以下几个方…

uniapp IOS从打包到上架流程(详细简单) 原创

​ 1.登入苹果开发者网站&#xff0c;打开App Store Connect ​ 2.新App的创建 点击我的App可以进入App管理界面&#xff0c;在右上角点击➕新建App 即可创建新的App&#xff0c;如下图&#xff1a; ​ 3.app基本信息填写 新建完App后&#xff0c;需要填写App的基本信息&…

SOLIDWORKS 2024新功能之CAM篇

SOLIDWORKS 2024 新功能 CAM篇目录概述 • 附加探测周期参数 • 反转切割的固定循环螺纹加工 • 包含装配体的零件的正确进给/速度数据 • Heidenhain 探测类型 • 2.5 轴特征向导中岛屿的终止条件 • 链接轮廓铣削操作的切入引导和切出引导参数 • 螺纹铣削操作的最小孔…

网络工程师眼中的网站安全:应对攻击的综合措施

作为一名专业的网络工程师&#xff0c;我们深知网站面临各种攻击威胁的现实。在构建网站安全的同时&#xff0c;综合运用技术手段和管理策略是至关重要的。在这篇文章中&#xff0c;我们将从网络工程师的视角出发&#xff0c;介绍如何解决网站被攻击的问题&#xff0c;并在其中…

飞凌嵌入式受邀参加「2023年电子工程师大会」并做主旨演讲

11月23日&#xff0c;华秋电子发烧友在深圳总部举办了「2023年电子工程师大会暨第三届社区年度颁奖」活动&#xff0c;邀请到了高校教授、企业创始人及高管、行业技术专家、电子工程师等众多嘉宾到场&#xff0c;呈现并传播了电子产业动态、最新技术、应用案例及开源硬件项目。…