Qt基础类02-坐标类QPointF

news2024/11/15 15:39:32

Qt基础类02-坐标类QPointF

  • 摘要
  • 基本信息
  • 重要成员函数举例6个
    • 程序全貌
    • QPointF::QPointF()
    • static qreal QPointF::dotProduct(const QPointF &p1, const QPointF &p2)
    • bool QPointF::isNull() const
    • const QPointF operator*(const QPointF &point, qreal factor)
    • const QPointF operator/(const QPointF &point, qreal divisor)
  • 小技巧
  • 系列博文

摘要

1.本文测试验证了QT5中的QPointF类的各成员函数和属性

2.本文适用于学习QT的新手入门及练习,老手请绕路。

3.工程上传至CSDN,供同一时期学习QT的网友参考,可自行查看。

基本信息

时间:2024.08.27
QT版本:5.14.2
平台:window 10

程序简介:

  1. 本工程是Qt基础类和基本数据类型专题例程,QPointF坐标类

  2. 本工程对照着Qt的帮助文档,把每个属性和成员函数测试了一遍

  3. 本工程QPointF类的测试程序,与QPoint类的测试程序,有较强的相似性,但也有细微差别,也要注意。

重要成员函数举例6个

程序全貌

这个练习程序,是对照着QT中QPointF的帮助文档,一个一个测试形成的。有了前一个测试程序QPointDemo的经验,这个例程就容易理解了。

全貌如下图:
在这里插入图片描述

QPointF::QPointF()

    qDebug()<<"";
    qDebug()<<"帮助:构造一个零点,即坐标为(0.0,0.0)";

    QPointF p1;
    QPointF p2(0,0);
    QPointF p3(0.0,0.0);

    qDebug()<<"如下3种不同的写法,坐标均为0,输出时均不带小数";
    qDebug()<<"QPointF p1;";
    qDebug()<<"QPointF p2(0,0);";
    qDebug()<<"QPointF p3(0.0,0.0);";

    qDebug()<<"p1点的坐标是:"<<p1.rx()<<","<<p1.ry();
    qDebug()<<"p2点的坐标是:"<<p2.rx()<<","<<p2.ry();
    qDebug()<<"p3点的坐标是:"<<p3.rx()<<","<<p3.ry();
    qDebug()<<"";
    qDebug()<<"";

程序运行效果如下:
在这里插入图片描述

static qreal QPointF::dotProduct(const QPointF &p1, const QPointF &p2)

    qDebug()<<"";
    qDebug()<<"帮助:返回p1和p2的点积。";
    qDebug()<<"两个向量a = [a1, a2,…, an]和b = [b1, b2,…, bn]的点积定义为:";
    qDebug()<<"a·b=a1b1+a2b2+……+anbn";

    QPointF p(3.1,7.1);
    QPointF q(-1.0,4.1);
    int lengthSquared=QPointF::dotProduct(p,q);

    qDebug()<<"如下这种写法:";
    qDebug()<<"QPointF p(3.1,7.1);";
    qDebug()<<"QPointF q(-1.0,4.1);";
    qDebug()<<"int lengthSquared=QPointF::dotProduct(p,q);";

    qDebug()<<"p与q的点积lengthSquared="<<lengthSquared;

    qDebug()<<"";
    qDebug()<<"";

程序运行效果如下:
在这里插入图片描述

bool QPointF::isNull() const

    qDebug()<<"";
    qDebug()<<"帮助:如果x和y坐标都被设置为0.0(忽略符号),则返回true;否则返回false。";

    QPointF p1(0.0,0.0);
    QPointF p2(1.27,2.54);

    bool result1=p1.isNull();
    bool result2=p2.isNull();

    qDebug()<<"如下代码:";
    qDebug()<<"QPointF p1(0.0,0.0);";
    qDebug()<<"QPointF p2(1.27,2.54);";
    qDebug()<<"bool result1=p1.isNull();";
    qDebug()<<"bool result2=p2.isNull();";

    qDebug()<<"result1为"<<result1;
    qDebug()<<"result2为"<<result2;

    qDebug()<<"";
    qDebug()<<"";

程序运行效果如下:
在这里插入图片描述

const QPointF operator*(const QPointF &point, qreal factor)

    qDebug()<<"";
    qDebug()<<"帮助:返回给定点乘以给定因子的副本。";

    QPointF p(1.27,2.54);
    QPointF q;
    qreal factor=100.1;
    q=operator*(p,factor);
    qDebug()<<"如下代码:";
    qDebug()<<"QPointF p(1.27,2.54);";
    qDebug()<<"QPointF q;";
    qDebug()<<"qreal factor=100.1;";
    qDebug()<<"q=operator*(p,factor);";
    qDebug()<<"q点的坐标是:"<<q.rx()<<","<<q.ry();

    qDebug()<<"";
    qDebug()<<"";

程序运行效果如下:
在这里插入图片描述

const QPointF operator/(const QPointF &point, qreal divisor)

    qDebug()<<"";
    qDebug()<<"帮助:返回QPointF对象,该对象由给定点的两个分量除以给定除数形成。";

    QPointF p(666.666,888.888);
    QPointF q;
    qreal divisor=100.1;
    q=operator/(p,divisor);
    qDebug()<<"如下代码:";
    qDebug()<<"QPointF p(666.666,888.888);";
    qDebug()<<"QPointF q;";
    qDebug()<<"qreal divisor=100.1;";
    qDebug()<<"q=operator/(p,divisor);";
    qDebug()<<"q点的坐标是:"<<q.rx()<<","<<q.ry();

    qDebug()<<"";
    qDebug()<<"";

程序运行效果如下:
在这里插入图片描述

小技巧

在按钮输入文本时,如果要输入&符号,要连续输入2个&符合即可。如下:

const QPointF operator/(const QPointF &&point, qreal divisor)

const QPointF operator/(const QPointF &point, qreal divisor)

系列博文

Qt基础类01–坐标类QPoint-CSDN博客

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

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

相关文章

程序员都必须要知道的 8个常见数据结构

1. 数组&#xff1a;多功能主力 什么是数组&#xff1f; 数组可能是编程中最基本、使用最广泛的数据结构。将数组视为存储在连续内存位置的项目集合。它就像学校里一排储物柜&#xff0c;每个储物柜&#xff08;元素&#xff09;按顺序编号&#xff0c;可容纳一个物品。 数组…

Qt实现图表绘制

来来来&#xff0c;今天新学习到了一个好东西&#xff0c;就是图表的绘制&#xff0c;这玩意在一般的项目开发中的使用频率还是非常高滴&#xff0c;毕竟相对于数字来说&#xff0c;这个东西更能体现出数据的变化&#xff0c;主要是耐看啊&#xff01;&#xff01;&#xff01;…

9月跨境营销热点日历!出海选品指南

9月1日 澳大利亚父亲节 澳大利亚父亲节是一个特殊的日子&#xff0c;人们用来表达对父亲的感激之情。 礼物用品&#xff1a;手表盒、雪茄盒、红酒架、腰带等。除了前面举例的几款&#xff0c;还能从哪里获取选品的灵感呢&#xff1f;店雷达给大家提供一些实操的选品思路&…

p38激酶在癌症研究中的进展

前 言&#xff1a; p38是丝裂原活化蛋白激酶MAPK家族的重要成员。p38的激活需要在Thr180、Tyr182位点发生磷酸化&#xff0c;在细胞增殖、代谢、凋亡等方面发挥重要作用&#xff0c;与多种肿瘤发展相关。 MAPK&#xff08;丝裂原活化蛋白激酶&#xff09;通路参与调控与癌症发…

【Linux】常见指令及权限相关知识详细梳理

1.Linux基本指令 1. ls指令 语法&#xff1a; ls [选项][目录或文件] 功能&#xff1a;对于目录&#xff0c;该命令列出该目录下的所有子目录与文件。 对于文件&#xff0c;将列出文件名以及其他信息。 常用选项&#xff1a; -a 列出目录下的所有文件&#xf…

ARM V2微架构

简介 今年V3/N3已经发布&#xff0c;但考虑到没有公布太多的细节&#xff0c;我依据手册在“ARM发布新一代高性能处理器”一文中对微架构有阐述&#xff0c;本文主要简单分析ARM V2的一些微架构内容。 IFU 1、每个cycle预测两个分支&#xff0c;这个特性在服务器系列中是N2/V…

vue数字滚动插件vue-countTo

文章目录 1. vue-countTo2. 使用2.1 安装2.2 页面使用 3. 参数4. 方法 1. vue-countTo 这是一个 vue 组件&#xff0c;它会在指定的时间内计数到目标数字 vue-countTo 是一个无依赖的轻量级 vue 组件&#xff0c;可以自行覆盖 easingFn&#xff0c;可以设置 startVal 和 endVal…

【无标题】如何申报团体标准,需要具备哪些条件

在当今快速发展的社会中&#xff0c;团体标准的重要性日益凸显。它不仅能够推动行业的进步与创新&#xff0c;还能提升企业的竞争力。那么&#xff0c;如何申报团体标准呢&#xff1f;又需要具备哪些条件呢&#xff1f;让我们一同来深入了解。 申报团体标准的流程和所需条件可能…

如何让工作汇报不再平庸?

在职场中&#xff0c;工作汇报是每位员工不可或缺的一部分&#xff0c;它不仅是展示个人成果与能力的窗口&#xff0c;也是促进团队沟通与协作的重要桥梁。 1、明确目标与听众 不同的听众有不同的关注点和期望&#xff0c;了解他们的背景和需求&#xff0c;能够让你在汇报中有…

创客匠人9月活动|预告

-----------------------------------------创客匠人&#xff1a;让知识变现不走弯路-----------------------------------------

7月刷题笔记

刷题笔记—7月 1512.好数对的数目(哈希) class Solution { public:int numIdenticalPairs(vector<int>& nums) {int cnt 0;unordered_map<int, int> hash;//nums[i]---个数for(int i 0; i < nums.size(); i) {cnt hash[nums[i]];hash[nums[i]];}return…

【鸿蒙】HarmonyOS NEXT星河入门到实战1-开发环境准备

目录 一、达成目标 二、鸿蒙开发环境准备 2.1 开发者工作下载 2.2 解压安装 2.3 运行配置安装node.js和SDK 2.4 开始创建第一个项目 2.5 预览 2.5.1 预览遇到的问题&#xff08;报错&#xff09; 2.5.2 修改内容查看预览 三、备用下载地址&#xff08;如果下载是4.X版…

Android平台RTSP|RTMP播放器(SmartPlayer)集成必读

技术背景 好多开发者拿到大牛直播SDK的Android平台RTSP、RTMP播放模块&#xff0c;基本上不看说明&#xff0c;测试后&#xff0c;就直接集成到自己系统了。不得不说&#xff0c;我们的模块虽然接口很多&#xff0c;功能支持全面&#xff0c;但是上层的demo设计逻辑确实简单&a…

【PyTorch][chapter 29][李宏毅深度学习][transformer-3] 使用PyTorch构建 Transformer

前言: 参考&#xff1a; https://www.datacamp.com/tutorial/building-a-transformer-with-py-torch, 使用PyTorch 构建Transformer 主要分为下面几步, 定义基本构建块——多头注意力、位置前馈网络、位置编码构建编码器块构建解码器块结合编码器和解码器层来创建完整的Transf…

零基础能做Oracle数据库之间的迁移吗?

没有技术背景的人&#xff0c;如何把企业的 Oracle 数据库平稳、无缝、无停机地迁移到另一个 Oracle 数据库&#xff1f; 可能会有人觉得这个话题很无聊&#xff0c;毕竟是承载企业核心数据的数据库&#xff0c;不会真有人拿企业的命脉开玩笑吧&#xff1f;但是事实上&#xf…

行空板上YOLO和Mediapipe视频物体检测的测试

Introduction 经过前面三篇教程帖子&#xff08;yolov8n在行空板上的运行&#xff08;中文&#xff09;&#xff0c;yolov10n在行空板上的运行&#xff08;中文&#xff09;&#xff0c;Mediapipe在行空板上的运行&#xff08;中文&#xff09;&#xff09;的介绍&#xff0c;…

张飞硬件10-TVS管篇笔记

TVS管的原理 TVS或称瞬变电压抑制二极管&#xff0c;是在二极管工艺基础上发展起来的新产品&#xff0c;其电路符号和普通稳压管相同&#xff0c;外形也与普通二极管无异。当TVS管两端经受瞬间的高能量冲击时&#xff0c;它能以极高的速度将其阻抗骤然降低&#xff0c;同时吸收…

多账套场景下Oracle EBS 导入日记账时需要进行平衡段的校验

处理要进行COA的校验之外&#xff0c;还要进行账套配置这个地方&#xff0c;平衡段的校验,相关参参照关系见如下sql(Doc ID 943582.1)&#xff1a; -- 1. SELECT *FROM gl_ledgersWHERE ledger_id &ledger_id;--2. SELECT *FROM gl_ledger_configurationsWHERE configurat…

JVM类的加载和类的加载器

JVM类的加载和类的加载器 一.类的加载过程 类的加载指的是将类的.class文件中的二进制数据读入到内存中&#xff0c;将其放在运行时数据区的方法区内&#xff0c;然后在堆区创建一个java.lang.Class对象&#xff0c;用来封装类在方法区内的数据结构。类的加载的最终产品是位于…

应用方案丨D02低功耗霍尔开关

1、概述 D02 是一款低功耗全极霍尔开关&#xff0c;用于检测施加的磁通量密度&#xff0c;并提供一个数字输出&#xff0c;该输出指示所感测磁通量幅度的当前状态。这些应用的一个例子是翻盖手机中的 ON/OFF 开关。微功耗设计特别适合电池供电系统&#xff0c;如手机或笔记本电…