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

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);
```通过以上步骤,就可以实现左键点击鼠标时图片跟着鼠标移动的功能。

相关文章:

Qt实现画的图片移动

要实现左键点击鼠标时图片跟着鼠标移动,可以通过以下步骤来实现:1. 在QGraphicsView的构造函数中设置鼠标跟踪属性,以便能够捕获鼠标事件。cpp QGraphicsView::QGraphicsView(QWidget *parent) : QGraphicsView(parent) {setMouseTracking(tr…...

比较2个点的3种结构在不规则平面上的占比

2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 1 2 2 3 3 3 x 3 3 2 2 2 1 2 2 2 2 2 1 2 2 在平面上有一个点x,再增加一个点,11的操作把平面分成了3部分2a1,2a2,2a3,3部分的比值是 2a1 2a2 2a3 5 25 …...

最小二乘线性回归

​ 线性回归(linear regression):试图学得一个线性模型以尽可能准确地预测实际值的输出。 以一个例子来说明线性回归,假设银行贷款会根据 年龄 和 工资 来评估可放款的额度。即: ​ 数据:工资和年龄&…...

【django+vue】连接数据库、登录功能

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 【djangovue专栏】 1.【djangovue】项目搭建、解决跨域访问 【djangovue】连接数据库、登录功能 django连接数据库1.安装MySQL驱动程序2.创建数据库3.配置settings.py文件4.创建表5.添加数据 登录功能1.django实现…...

NX二次开发UF_CSYS_edit_matrix_of_object 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_edit_matrix_of_object Defined in: uf_csys.h int UF_CSYS_edit_matrix_of_object(tag_t object_id, tag_t matrix_id ) overview 概述 Updates the specified coordinat…...

封装公共el-form表单

1.公共表单组件 //commonForm.vue <script> import {TEXT,SELECT,PASSWORD,TEXTAREA,RADIO,DATE_PICKER } from /conf/uiTypes import { deepClone } from /utils export default {name: GFormCreator,props: {config: { // title/itemstype: Object,required: true}}…...

OpenHarmony-4.0-Release 源码编译记录

本文基于 Ubuntu 20.04.4 LTS 1、环境准备 这个没啥好说的&#xff0c;都是搞机的&#xff0c;用之前编译 aosp 的 linux 环境就行&#xff0c;有小伙伴担心会把之前的环境搞崩&#xff0c; 也有用 docker 编译的&#xff0c;我这里就直接在 aosp 环境下搞了&#xff0c;还省…...

HTML新手入门笔记整理:块元素和行内元素

块元素 在HTML中&#xff0c;块元素在浏览器显示状态下独占一行&#xff0c;并且排斥其他元素与其位于一行。一般情况下&#xff0c;块元素内部可以容纳其他块元素和行内元素。 常见块元素 块元素 说明 h1~h6 标题元素 p 段落元素 div div元素 hr 水平线 ol 有序列…...

Hook+jsdom 解决cookie逆向

前言 记录下如何破cookie逆向 目标 目标网址:https://q.10jqka.com.cn/ 目标接口:http://q.10jqka.com.cn/index/index/board/all/field/zdf/order/desc/page/2/ajax/1/ 对抗:cookie反爬虫处理,关键字v,如图 解决步骤 1、JS中关键字查找 如上,我们找到了关键字 v,…...

【封装UI组件库系列】封装Icon图标组件

封装UI组件库系列第三篇封装Icon图标组件 &#x1f31f;前言 &#x1f31f;封装Icon 1.创建Icon组件 2.引用svg图标库 第一步 第二步 第三步 3.二次封装 4.封装自定义属性 &#x1f31f;总结 &#x1f31f;前言 在前端开发中&#xff0c;大家可能已经用过各种各样的UI组…...

STM32:基本定时器原理和定时程序

一、初识定时器TIM 定时器就是计数器&#xff0c;定时器的作用就是设置一个时间&#xff0c;然后时间到后就会通过中断等方式通知STM32执行某些程序。定时器除了可以实现普通的定时功能&#xff0c;还可以实现捕获脉冲宽度&#xff0c;计算PWM占空比&#xff0c;输出PWM波形&am…...

EntityFramework 批量删除操作

刚刚开始使用Entityframwork 来操作数据库。遇到了批量删除数据。 EF内部用的方法是&#xff1a;dbcontext.Datas.RemoveRange(list); 这总方法&#xff0c;少量数据是可行的。 但遇到大数据量的时候&#xff0c;这个方法完全不能用。 所以找了另一种方法&#xff1a; stri…...

springboot使用的设计模式

设计模式是在软件设计中常用的一些通用解决方案。在开发商城编码时&#xff0c;以下设计模式可能会有用&#xff1a; 工厂模式&#xff08;Factory Pattern&#xff09;&#xff1a; 用于创建对象的模式。在商城中&#xff0c;可能会涉及到创建不同类型的商品、订单等对象&…...

IP地址定位技术发展与未来趋势

随着互联网的快速发展&#xff0c;人们对网络的需求和依赖程度越来越高。在海量的网络数据传输中&#xff0c;IP地址定位技术作为网络安全与信息追踪的重要手段&#xff0c;其精准度一直备受关注。近年来&#xff0c;随着技术的不断进步&#xff0c;IP地址定位的精准度得到了显…...

AI与交通运输

人工智能&#xff08;AI&#xff09;正在改变几乎所有行业&#xff0c;交通运输也不例外。 虽然与某些行业相比&#xff0c;我们运输货物和乘客的方式在过去 50 年里变化相对较小&#xff0c;但人工智能有望引发一场运输革命—如果你正在寻找人工智能的机会&#xff0c;不要错过…...

window.requestAnimationFrame+localStorage+canvas实现跨窗口小球连线效果

文章目录 前言效果代码后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;前端系列文章 &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌握&#xff0c;正在不断努力填补技术短板。(如果出现错误&#xff0c;感谢大家…...

使用AndResGuard报错:copy res file not in resources.arsc file:Ezi.xml

Android使用AndResGuard进行资源混淆&#xff0c;压缩。 源码地址&#xff1a;GitHub - shwenzhang/AndResGuard: proguard resource for Android by wechat team 集成完成后编译过程中出现如下错误&#xff1a; 14:57:05 copy res file not in resources.arsc file:IUk.xml…...

插入排序(形象类比)

最近在看riscv手册的时候&#xff0c;里面有一段代码是插入排序&#xff0c;但是单看代码的时候有点迷&#xff0c;没看懂咋操作的&#xff0c;后来又查资料复习了一下&#xff0c;最终才把代码看明白&#xff0c;所以写篇博客记录一下。 插入排序像打扑克牌 这是我听到过比较形…...

ElasticSearch 同步的方式

ElasticSearch 同步的方式 ElasticSearch是一款强大的分布式搜索和分析引擎&#xff0c;支持多种方式同步数据和日志。下面介绍几种常见的同步方式&#xff1a; 1. Logstash Logstash 是 ElasticStack 的一部分&#xff0c;用于收集、处理和转发日志和事件数据。通过配置 Lo…...

easyExcel实现分批导入,动态表头分批导出,以及导出表格样式设置

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version></dependency> 一&#xff0c;分批导入 1.首先配置表格头映射类 Getter Setter EqualsAndHashCode public class …...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...