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

「QT」几何数据类 之 QPoint 整型点类

在这里插入图片描述

✨博客主页
何曾参静谧的博客
📌文章专栏
「QT」QT5程序设计
📚全部专栏
「VS」Visual Studio「C/C++」C/C++程序设计「UG/NX」BlockUI集合
「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发
「QT」QT5程序设计「File」数据文件格式「PK」Parasolid函数说明
「Math」探秘数学世界

目录

    • QPoint类详解
      • 一、引言
      • 二、使用范围
      • 三、类的头文件
      • 四、类的构造介绍
      • 五、共有函数介绍
      • 六、Static函数介绍
      • 七、运算符重载
      • 八、详细代码举例

QPoint类详解

一、引言

QPoint是Qt框架中的一个核心类,它用于表示二维平面上的一个点。QPoint类提供了丰富的功能,包括点的坐标操作、向量运算以及与其他Qt类的集成。作为Qt绘图和图形界面设计的基础,QPoint类在Qt应用程序中扮演着重要的角色。

二、使用范围

QPoint类广泛应用于Qt的图形编程和界面设计中。它不仅可以用于表示图形界面中的点位置,还可以作为向量进行加减乘除等运算。此外,QPoint类还常用于处理鼠标事件、绘制图形以及进行图形变换等场景。

三、类的头文件

要使用QPoint类,需要包含其头文件<QPoint>。这个头文件定义了QPoint类的所有成员和函数,使得开发者可以在自己的Qt应用程序中使用该类。

#include <QPoint>

四、类的构造介绍

QPoint类提供了两种构造函数:

  1. 默认构造函数:创建一个横纵坐标均为0的QPoint对象。
QPoint();
  1. 参数化构造函数:创建一个横纵坐标分别为指定值的QPoint对象。
QPoint(int xpos, int ypos);

五、共有函数介绍

QPoint类提供了多个共有函数,用于获取和设置点的坐标、进行向量运算等。以下是一些常用的共有函数:

  • int x() const:获取点的横坐标。
  • int y() const:获取点的纵坐标。
  • void setX(int x):设置点的横坐标。
  • void setY(int y):设置点的纵坐标。
  • QPoint &operator+=(const QPoint &point):将当前点与另一个点相加,结果存储在当前点中。
  • QPoint &operator-=(const QPoint &point):将当前点与另一个点相减,结果存储在当前点中。
  • int manhattanLength() const:计算当前点作为向量时的曼哈顿长度(即横纵坐标绝对值之和)。

六、Static函数介绍

QPoint类还提供了一个静态函数dotProduct,用于计算两个点的点积。

static int dotProduct(const QPoint &p1, const QPoint &p2);

该函数接受两个QPoint对象作为参数,并返回它们的点积结果。

七、运算符重载

QPoint类重载了多个运算符,使得该类可以像基本数据类型一样进行运算。以下是一些重载的运算符:

  • QPoint operator+(const QPoint &point):两个点相加,返回一个新的QPoint对象。
  • QPoint operator-(const QPoint &point):两个点相减,返回一个新的QPoint对象。
  • QPoint operator*(int factor):将点乘以一个整数因子,返回一个新的QPoint对象。
  • QPoint operator/(qreal divisor):将点除以一个实数因子,返回一个新的QPoint对象。
  • bool operator==(const QPoint &other):判断两个点是否相等。
  • bool operator!=(const QPoint &other):判断两个点是否不相等。

八、详细代码举例

以下是一个使用QPoint类的详细代码示例,展示了如何创建QPoint对象、获取和设置坐标、进行向量运算以及计算曼哈顿长度。

#include <QCoreApplication>
#include <QPoint>
#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 创建两个QPoint对象QPoint point1(3, 4);QPoint point2(1, 2);// 获取点的坐标int x1 = point1.x();int y1 = point1.y();qDebug() << "Point1:" << x1 << "," << y1;int x2 = point2.x();int y2 = point2.y();qDebug() << "Point2:" << x2 << "," << y2;// 设置点的坐标point1.setX(5);point1.setY(6);qDebug() << "After setting, Point1:" << point1.x() << "," << point1.y();// 向量运算QPoint point3 = point1 + point2;qDebug() << "Point1 + Point2 = Point3:" << point3.x() << "," << point3.y();QPoint point4 = point1 - point2;qDebug() << "Point1 - Point2 = Point4:" << point4.x() << "," << point4.y();QPoint point5 = point1 * 2;qDebug() << "Point1 * 2 = Point5:" << point5.x() << "," << point5.y();// 计算曼哈顿长度int length = point1.manhattanLength();qDebug() << "Manhattan length of Point1:" << length;return a.exec();
}

在这个示例中,我们首先创建了两个QPoint对象point1point2,并获取了它们的坐标。然后,我们设置了point1的新坐标,并进行了向量加法、减法和乘法运算。最后,我们计算了point1的曼哈顿长度,并将所有结果输出到控制台。

通过本文的介绍,相信读者已经对Qt中的QPoint类有了深入的了解。在实际开发中,可以根据需要灵活运用QPoint类来处理二维平面上的点坐标和向量运算。


在这里插入图片描述

相关文章:

「QT」几何数据类 之 QPoint 整型点类

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「QT」QT5程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…...

植物明星大乱斗5

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录 timer.htimer.cppcamera.hcamera.cppmenuScene.cpp timer.h #pragma once #include <functional>class Timer {public:void reStart();void setTimer(int timerMs);void setIsOneShot(bool isOneShot);void …...

每日算法练习

各位小伙伴们大家好&#xff0c;今天给大家带来几道算法题。 题目一 算法分析 首先&#xff0c;我们应该知道什么是完全二叉树&#xff1a;若一颗二叉树深度为n&#xff0c;那么前n-1层是满二叉树&#xff0c;只有最后一层不确定。 给定我们一棵完全二叉树&#xff0c;我们查看…...

把握鸿蒙生态崛起机遇:开发者如何在全场景操作系统中脱颖而出

把握鸿蒙生态崛起机遇&#xff1a;开发者如何在全场景操作系统中脱颖而出 随着鸿蒙系统的逐步成熟和生态体系的扩展&#xff0c;其与安卓、iOS 形成了全新竞争格局&#xff0c;为智能手机、穿戴设备、车载系统和智能家居等领域带来了广阔的应用前景。作为开发者&#xff0c;如…...

字符串类型排序,通过枚举进行单个维度多个维度排序

字符串类型进行排序通过定义枚举值实现 1.首先创建一个测试类&#xff0c;并实现main方法 2.如果是单个维度的排序&#xff0c;则按照顺序定义一个枚举 public enum Risk {高风险,中风险,一般风险,低风险 } public static void main(String[] args) { }3.main方法里实现如下…...

figma的drop shadow x:0 y:4 blur:6 spread:0 如何写成css样式

figma的drop shadow x:0 y:4 blur:6 spread:0 如何写成css样式 在CSS中&#xff0c;我们可以使用box-shadow属性来模拟Figma中的Drop Shadow效果。box-shadow属性接受的值分别是&#xff1a;横向偏移、纵向偏移、模糊半径、扩展半径和颜色。 但是&#xff0c;Figma的Drop Sha…...

基于Matlab 疲劳驾驶检测

Matlab 疲劳驾驶检测 课题介绍 该课题为基于眼部和嘴部的疲劳驾驶检测。带有一个人机交互界面GUI&#xff0c;通过输入视频&#xff0c;分帧&#xff0c;定位眼睛和嘴巴&#xff0c;通过眼睛和嘴巴的张合度&#xff0c;来判别是否疲劳。 二、操作步骤 第一步&#xff1a;最…...

Linux内核.之 init文件,/init/main.c

想要熟悉内核&#xff0c;看下源码&#xff0c;就非常清晰 Linux内核&#xff0c;head.s&#xff0c;汇编启动cpu相关设置后&#xff0c;启动init文件里的&#xff0c;文件在内核的/init/main.c&#xff0c;看下main函数&#xff0c;做了哪些工作 // SPDX-License-Identifier: …...

CentOS系统中查看内网端口映射的多种方法

在网络管理中&#xff0c;了解和控制内网端口映射是至关重要的。本文将为您详细介绍在CentOS系统中查看内网端口映射的多种方法&#xff0c;助您提升网络管理效率。 使用netstat命令查看端口映射 netstat是一个强大的网络诊断工具。要查看当前的端口映射情况&#xff0c;可以在…...

Mac中禁用系统更新

Mac中禁用系统更新 文章目录 Mac中禁用系统更新1. 修改hosts&#xff0c;屏蔽系统更新检测联网1. 去除系统偏好设置--系统更新已有的小红点标记 1. 修改hosts&#xff0c;屏蔽系统更新检测联网 打开终端&#xff0c;执行命令&#xff1a; sudo vim /etc/hosts127.0.0.1 swdis…...

GoogLeNet-水果分类

GoogLeNet-水果分类 1.数据集 官方下载地址&#xff1a;https://www.kaggle.com/datasets/karimabdulnabi/fruit-classification10-class?resourcedownload 备用下载地址&#xff1a;https://www.123684.com/s/xhlWjv-pRAPh 介绍&#xff1a; 十个类别&#xff1a;苹果、…...

深度学习入门指南:一篇文章全解

目录 0.前言 1.深度学习的背景历史 2.深度学习主要研究的内容 3.深度学习的分支 3.1.卷积神经网络&#xff08;CNN&#xff09; 3.2 递归神经网络&#xff08;RNN&#xff09; 3. 3长短期记忆网络&#xff08;LSTM&#xff09; 4.深度学习的主要应用 4.1计算机视觉 4…...

java ssm 医院病房管理系统 医院管理 医疗病房信息管理 源码 jsp

一、项目简介 本项目是一套基于SSM的医院病房管理系统&#xff0c;主要针对计算机相关专业的和需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本、软件工具等。 项目都经过严格调试&#xff0c;确保可以运行&#xff01; 二、技术实现 ​后端技术&#x…...

钩子函数的使用

钩子函数在计算机科学和软件工程中&#xff0c;特别是在编程框架和库中&#xff0c;是一种特殊的函数或方法&#xff0c;它们允许用户在框架或库的特定点插入自定义代码。这些钩子提供了一种扩展框架功能而无需修改其源代码的方式。 在前后端分离的项目中&#xff0c;如使用Dj…...

【Docker】自定义网络:实现容器之间通过域名相互通讯

文章目录 一. 默认网络&#xff1a;docker0网络的问题二. 自定义网络三. nginx容器指之间通过主机名进行内部通讯四. redis集群容器&#xff08;跳过宿主机&#xff09;内部网络通讯1. 集群描述2. 基于bitnami镜像的环境变量快速构建redis集群 一. 默认网络&#xff1a;docker0…...

护理陪护系统|护理陪护软件|陪护软件

在当今社会&#xff0c;随着人口老龄化的加剧和生活节奏的加快&#xff0c;护理陪护服务的需求日益增长。为了满足这一需求&#xff0c;开发定制一套高效、专业的护理陪护系统显得尤为重要。在开发过程中&#xff0c;有几个关键方面不能忽视。 一、用户需求分析 护理陪护系统的…...

苍穹外卖-账号被锁定怎么办?

刚刚解决的小问题, 最近在搞黑马程序员的苍穹外卖项目, 在完善开发编辑员工功能的时候, 不知道怎么搞的, 无论是swagger接口测试, 还是前后端联调, 都显示"账号被锁定", 原本想在网上找找解释, 结果我太笨, 搜不到, 那就只能在代码里面排查咯, 既然是登录接口出…...

webpack loader全解析,从入门到精通(10)

webpack 的核心功能是分析出各种模块的依赖关系&#xff0c;然后形成资源列表&#xff0c;最终打包生成到指定的文件中。更多复杂的功能需要借助 webpack loaders 和 plugins 来完成。 1. 什么是 Loader Loader 本质上是一个函数&#xff0c;它的作用是将某个源码字符串转换成…...

python机器人Agent编程——实现一个本地大模型和爬虫结合的手机号归属地天气查询Agent

目录 一、前言二、准备工作三、Agent结构四、python模块实现4.1 实现手机号归属地查询工具4.2实现天气查询工具4.3定义创建Agent主体4.4创建聊天界面 五、小结PS.扩展阅读ps1.六自由度机器人相关文章资源ps2.四轴机器相关文章资源ps3.移动小车相关文章资源ps3.wifi小车控制相关…...

【动态规划】斐波那契数列模型总结

一、第 N 个泰波那契数 题目链接&#xff1a; 第 N 个泰波那契数 题目描述&#xff1a; 题目分析&#xff1a; 1、状态表示&#xff1a; dp[i] 表示&#xff1a;第 i 个斐波那契数的值 2、状态转移方程&#xff1a; 由题意可知第 i 个数等于其前三个数之和 dp[i] dp[i-…...

EasyUI弹出框行编辑,通过下拉框实现内容联动

EasyUI弹出框行编辑&#xff0c;通过下拉框实现内容联动 需求 实现用户支付方式配置&#xff0c;当弹出框加载出来的时候&#xff0c;显示用户现有的支付方式&#xff0c;datagrid的第一列为conbobox,下来选择之后实现后面的数据直接填充&#xff1b; 点击新增&#xff1a;新…...

国产linux系统(银河麒麟,统信uos)使用 PageOffice 实现word文件在线留痕

PageOffice 国产版 &#xff1a;支持信创系统&#xff0c;支持银河麒麟V10和统信UOS&#xff0c;支持X86&#xff08;intel、兆芯、海光等&#xff09;、ARM&#xff08;飞腾、鲲鹏、麒麟等&#xff09;、龙芯&#xff08;LoogArch&#xff09;芯片架构。 查看本示例演示效果 …...

使用亚马逊 S3 连接器为 PyTorch 和 MinIO 创建地图式数据集

在深入研究 Amazon 的 PyTorch S3 连接器之前&#xff0c;有必要介绍一下它要解决的问题。许多 AI 模型需要使用无法放入内存的数据进行训练。此外&#xff0c;许多为计算机视觉和生成式 AI 构建的真正有趣的模型使用的数据甚至无法容纳在单个服务器附带的磁盘驱动器上。解决存…...

自动化运维:提升效率与稳定性的关键技术实践

自动化运维&#xff1a;提升效率与稳定性的关键技术实践 在数字化转型的浪潮中&#xff0c;企业对于IT系统的依赖日益加深&#xff0c;系统的复杂性和规模也随之膨胀。面对这一挑战&#xff0c;传统的运维模式——依靠人工进行服务器的监控、配置变更、故障排查等任务&#xf…...

Google Go编程风格指南-介绍

关于 首先应该明确的是&#xff1a;Go语言是Google搞出来的&#xff0c;这个编程风格指南也是它提出来的&#xff0c;详见&#xff1a;https://google.github.io/styleguide/go/。 然后国内翻译组跟上&#xff0c;于是有了中文版&#xff1a;https://gocn.github.io/stylegui…...

思科模拟器路由器配置实验

一、实验目的 了解路由器的作用。掌握路由器的基本配置方法。掌握路由器模块的使用和互连方式。 二、实验环境 设备&#xff1a; 2811 路由器 1 台计算机 2 台Console 配置线 1 根网线若干根 拓扑图&#xff1a;实验拓扑图如图 8-1 所示。计算机 IP 地址规划&#xff1a;如表…...

机器学习—选择激活函数

可以为神经网络中的不同神经元选择激活函数&#xff0c;我们将从如何为输出层选择它的一些指导开始&#xff0c;事实证明&#xff0c;取决于目标标签或地面真相标签y是什么&#xff0c;对于输出层的激活函数&#xff0c;将有一个相当自然的选择&#xff0c;然后看看激活函数的选…...

[ Linux 命令基础 4 ] Linux 命令详解-文本处理命令

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…...

Odoo:免费开源的钢铁冶金行业ERP管理系统

文 / 开源智造 Odoo亚太金牌服务 简介 Odoo免费开源ERP集成计质量设备大宗原料采购&#xff0c;备件设材全生命周期&#xff0c;多业务模式货控销售&#xff0c;全要素追溯单品&#xff0c;无人值守计量物流&#xff0c;大宗贸易交易和精细化成本管理等方案&#xff1b;覆盖…...

33.Redis多线程

1.Redis队列与Stream Redis5.0 最大的新特性就是多出了一个数据结构 Stream&#xff0c;它是一个新的强大的支持多播的可持久化的消息队列。 Redis Stream 的结构如上图所示,每一个Stream都有一个消息链表&#xff0c;将所有加入的消息都串起来&#xff0c;每个消息都有一个唯…...

东莞手机网站设计公司/sem是指什么

2137: 项目开发 时间限制: 1 Sec 内存限制: 128 MB 提交: 143 解决: 80 [提交] [状态] [讨论版] [命题人:admin] 题目描述 众所周知&#xff0c;由于一些项目经理不是技术出身&#xff0c;项目经理经常和开发不在同一个频道上。于是就提出了一些比较 让人难以接收的需求。…...

网站版面在线设计/买淘宝店铺多少钱一个

VFM 安装&#xff1a;上传访问即可。无需数据库&#xff0c;无需编程基础。默认管理账户&#xff1a;admin/passwordVFM 支持多种语言&#xff0c;HTML5 分块文件上传&#xff0c;支持大文件&#xff0c;视网膜适配。Version 3.4.5 – 08/10/2018– New: Set Browser and App i…...

关于网站开发的一些论文/seo关键词是什么意思

springboot 本地访问静态页面&#xff0c;动态页面&#xff0c;其他静态资源&#xff0c;以及默认页面的方式 静态页面访问 &#xff08;其他静态资源也行&#xff09; spring boot项目只有src目录&#xff0c;没有webapp目录&#xff0c;会将静态访问(html/图片等)映射到其…...

跨境独立站哪个平台好/2021年网络营销考试题及答案

7-27 冒泡法排序 (20 分) 将N个整数按从小到大排序的冒泡排序法是这样工作的&#xff1a;从头到尾比较相邻两个元素&#xff0c;如果前面的元素大于其紧随的后面元素&#xff0c;则交换它们。通过一遍扫描&#xff0c;则最后一个元素必定是最大的元素。然后用同样的方法对前N−…...

如何做企业介绍/云速seo百度点击

2019独角兽企业重金招聘Python工程师标准>>> Redis的事务 是什么Redis的事务 可以一次执行多个命令&#xff0c;本质是一组命令的集合。一个事务中的所有命令都会序列化&#xff0c;按顺序地串行化执行而不会被其它命令插入&#xff0c;不许加塞噢&#xff1a;&…...

小程序开发费用明细怎么填/seo网站推广免费

现在回头看看毕设做的安卓程序&#xff0c;不论从深度还是广度上对安卓开发都不够深入&#xff0c;这次从头复习&#xff0c;恰好遇到了一本让人欲罢不能的好书。 每一个安卓开发者都是从activity开始入门的&#xff0c;先整理一篇关于activity的知识点。 一、创建activity的步…...