Qt中的位置和尺寸

2023-11-04

在QT中我们常见的 点, 线, 尺寸, 矩形 都被进行了封装, 下边依次为大家介绍相关的类。

目录

QPoint

QLine

QSize

QRect

QPoint

        QPoint是C++编程语言中Qt框架中的一个类,它表示2D坐标系中的一个点。它用于定义小部件或窗口上图形对象的位置。QPoint将一个点的x和y坐标存储为整数。它提供了各种方法,用于对点执行比较、加法和减法等操作。QPoint通常用于创建GUI应用程序和图形用户界面。

QPoint类封装了我们常用用到的坐标点 (x, y), 常用的 API如下:

// 构造函数
// 构造一个坐标原点, 即(0, 0)
QPoint::QPoint();
// 参数为 x轴坐标, y轴坐标
QPoint::QPoint(int xpos, int ypos);

// 设置x轴坐标
void QPoint::setX(int x);
// 设置y轴坐标
void QPoint::setY(int y);

// 得到x轴坐标
int QPoint::x() const;
// 得到x轴坐标的引用
int &QPoint::rx();
// 得到y轴坐标
int QPoint::y() const;
// 得到y轴坐标的引用
int &QPoint::ry();

// 直接通过坐标对象进行算术运算: 加减乘除
QPoint &QPoint::operator*=(float factor);
QPoint &QPoint::operator*=(double factor);
QPoint &QPoint::operator*=(int factor);
QPoint &QPoint::operator+=(const QPoint &point);
QPoint &QPoint::operator-=(const QPoint &point);
QPoint &QPoint::operator/=(qreal divisor);

        除了QPoint之外,Qt还提供了QPointF类,用于表示浮点数坐标点。两者的用法类似,但是QPointF更加精确,适用于需要高精度坐标计算的场合。

QLine

        QLine是C++编程语言中Qt框架中的一个类,它表示2D中的一条直线。它用于定义小部件或窗口上的直线对象。QLine将直线起始点和终止点的坐标存储为QPoint类型。它提供了各种方法,用于对线条执行比较、角度计算和插值等操作。QLine通常用于创建GUI应用程序和图形用户界面,比如在绘制图形时,可以使用QLine来绘制直线。

QLine是一个直线类, 封装了两个坐标点 (两点确定一条直线)

常用API如下:

// 构造函数
// 构造一个空对象
QLine::QLine();
// 构造一条直线, 通过两个坐标点
QLine::QLine(const QPoint &p1, const QPoint &p2);
// 从点 (x1, y1) 到 (x2, y2)
QLine::QLine(int x1, int y1, int x2, int y2);

// 给直线对象设置坐标点
void QLine::setPoints(const QPoint &p1, const QPoint &p2);
// 起始点(x1, y1), 终点(x2, y2)
void QLine::setLine(int x1, int y1, int x2, int y2);
// 设置直线的起点坐标
void QLine::setP1(const QPoint &p1);
// 设置直线的终点坐标
void QLine::setP2(const QPoint &p2);

// 返回直线的起始点坐标
QPoint QLine::p1() const;
// 返回直线的终点坐标
QPoint QLine::p2() const;
// 返回值直线的中心点坐标, (p1() + p2()) / 2
QPoint QLine::center() const;

// 返回值直线起点的 x 坐标
int QLine::x1() const;
// 返回值直线终点的 x 坐标
int QLine::x2() const;
// 返回值直线起点的 y 坐标
int QLine::y1() const;
// 返回值直线终点的 y 坐标
int QLine::y2() const;

// 用给定的坐标点平移这条直线
void QLine::translate(const QPoint &offset);
void QLine::translate(int dx, int dy);
// 用给定的坐标点平移这条直线, 返回平移之后的坐标点
QLine QLine::translated(const QPoint &offset) const;
QLine QLine::translated(int dx, int dy) const;

// 直线对象进行比较
bool QLine::operator!=(const QLine &line) const;
bool QLine::operator==(const QLine &line) const;

        除了QLine之外,Qt还提供了QLineF类,用于表示浮点数直线。两者的用法类似,但是QLineF更加精确,适用于需要高精度直线计算的场合。

QSize

        QSize是Qt框架中用来表示二维尺寸大小的类,其包含两个整型成员变量width和height,可以用来表示控件、图片、字体等的大小。QSize类提供了一系列的方法和运算符重载,用于获取、设置、比较和计算两个尺寸之间的差值、倍增、除以等操作。

// 构造函数
// 构造空对象, 对象中的宽和高都是无效的
QSize::QSize();
// 使用宽和高构造一个有效对象
QSize::QSize(int width, int height);

// 设置宽度
void QSize::setWidth(int width)
// 设置高度
void QSize::setHeight(int height);

// 得到宽度
int QSize::width() const;
// 得到宽度的引用
int &QSize::rwidth();
// 得到高度
int QSize::height() const;
// 得到高度的引用
int &QSize::rheight();

// 交换高度和宽度的值
void QSize::transpose();
// 交换高度和宽度的值, 返回交换之后的尺寸信息
QSize QSize::transposed() const;

// 进行算法运算: 加减乘除
QSize &QSize::operator*=(qreal factor);
QSize &QSize::operator+=(const QSize &size);
QSize &QSize::operator-=(const QSize &size);
QSize &QSize::operator/=(qreal divisor);

        除了QSize之外,Qt还提供了QSizeF类,用于表示浮点数类型的尺寸大小。两者的用法类似,但是QSizeF更加精确,适用于需要高精度尺寸计算的场合。

QRect

        QRect是Qt框架中用来表示二维矩形的类,其成员变量包括左上角点的坐标、矩形的宽度和高度。QRect提供了一系列的方法和运算符重载,用于计算两个矩形之间的相交、并集、差集等操作,以及判断一个点是否在矩形内、判断两个矩形是否相等等操作。QRect还可以用于表示选区、边界框等概念。

// 构造函数
// 构造一个空对象
QRect::QRect();
// 基于左上角坐标, 和右下角坐标构造一个矩形对象
QRect::QRect(const QPoint &topLeft, const QPoint &bottomRight);
// 基于左上角坐标, 和 宽度, 高度构造一个矩形对象
QRect::QRect(const QPoint &topLeft, const QSize &size);
// 通过 左上角坐标(x, y), 和 矩形尺寸(width, height) 构造一个矩形对象
QRect::QRect(int x, int y, int width, int height);

// 设置矩形的尺寸信息, 左上角坐标不变
void QRect::setSize(const QSize &size);
// 设置矩形左上角坐标为(x,y), 大小为(width, height)
void QRect::setRect(int x, int y, int width, int height);
// 设置矩形宽度
void QRect::setWidth(int width);
// 设置矩形高度
void QRect::setHeight(int height);

// 返回值矩形左上角坐标
QPoint QRect::topLeft() const;
// 返回矩形右上角坐标
// 该坐标点值为: QPoint(left() + width() -1, top())
QPoint QRect::topRight() const;
// 返回矩形左下角坐标
// 该坐标点值为: QPoint(left(), top() + height() - 1)
QPoint QRect::bottomLeft() const;
// 返回矩形右下角坐标
// 该坐标点值为: QPoint(left() + width() -1, top() + height() - 1)
QPoint QRect::bottomRight() const;
// 返回矩形中心点坐标
QPoint QRect::center() const;

// 返回矩形上边缘y轴坐标
int QRect::top() const;
int QRect::y() const;
// 返回值矩形下边缘y轴坐标
int QRect::bottom() const;
// 返回矩形左边缘 x轴坐标
int QRect::x() const;
int QRect::left() const;
// 返回矩形右边缘x轴坐标
int QRect::right() const;

// 返回矩形的高度
int QRect::width() const;
// 返回矩形的宽度
int QRect::height() const;
// 返回矩形的尺寸信息
QSize QRect::size() const;

        除了QRect之外,Qt还提供了QRectF类,用于表示浮点数类型的矩形区域。两者的用法类似,但是QRectF更加精确,适用于需要高精度矩形计算的场合。

总结:本文写了关于QPoint,QLine,QSize,QRect的相关api,QPoint表示二维平面上的一个点,可以用来确定QRect的左上角坐标和QLine的起点和终点。QSize表示一个二维尺寸,可以用来确定QRect的宽度和高度。而QRect则是由QPoint和QSize合成的矩形区域,它可以用来表示QWidget的位置和大小、QPixmap图像的部分区域等,同时也可以和QPoint、QLine、QSize进行互相转换。QLine表示二维平面上的一条线段,由起点和终点两个点组成,可以和QRect进行相交判断等操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt中的位置和尺寸 的相关文章

随机推荐

  • Unity3D启动时卡在Loading界面

    首先说说我是怎么遇到这个问题的吧 当初是因为手贱无意中点了这个Sign out 退出当前用户 然后就一直卡在Loading界面死循环了 收集了一些网上的解决方法都不好使 难道是因为我是Mac系统的Unity 解决方案 一 Windows系统
  • 【待完善】python中调用 imread 报错: ImportError: cannot import name imread

    pip install Pillow 该问题排查有以下几种情况 未安装 Pillow库 scipy版本不对 ImportError cannot import name imread from scipy misc 是由于 imread i
  • 生成ltx文件命令_系统小技巧:实用简单的PowerShell命令

    从Windows 10 1703版开始 PowerShell取代了原命令提示符的位置 成为Windows管理的必备利器 然而许多普通Windows用户不知它的用途 其实 通过在PowerShell窗口中执行简单的命令 往往可以解决一些实际问
  • 2023/9/11 qt&c++

    include
  • LeetCode646.最长数对链

    题目描述 646 最长数对链 力扣 LeetCode 这是一道典型的贪心算法题 我们先对原数对进行排序 排序规则是按照数对的右边界值的大小进行升序排列 初始化变量end为升序后第一个数对的右边界值 这个数无疑是最小的右边界 之后依次遍历整个
  • Qt程序的打包和发布(使用windeployqt)

    将编写完成的Qt程序进行打包 使得没有安装Qt环境的电脑也可以运行编写完成的应用 1 Release文件生成 在Qt Creator中 将构建方式改为Release 点击运行 或ctrl r快捷键运行 2 找到exe文件 复制到一个空目录中
  • java单元测试之Mock静态方法

    用例子说明 例如有下面静态方法 public final class AmountUtil public static String CustomFormatWith2Digits int amount return 1 单元测试代码 需要
  • 服务器端虚拟化安卓,安卓服务器端实例

    安卓服务器端实例 内容精选 换一换 本章节以Linux操作系统为例 指导您通过内网IP的方式连接GaussDB for Redis 实例 目标实例必须与弹性云服务器在同一个虚拟私有云和子网内才能访问 弹性云服务器必须处于目标实例所属安全组允
  • vscode和vs有什么区别?

    vscode是微软新推出的一款代码编辑器 内置了一些编译器 免费开源跨平台的工具 VS是微软的商业企业级开发环境IDE 在这之前 我们写代码的工具可以分为三个层次 最轻量级的叫做代码编辑器 例如notepad notepad subline
  • OD查看字符串

    在反汇编窗口中右击 出来一个菜单 我们在 查找 gt 所有参考文本字串 上左键点击 在text string窗口后 再右击这个窗口里面随便一处 选 search for text 输入要查找的内容 把Case sensitive 区分大小写
  • 【RoCE】拥塞控制机制(ECN, DC-QCN)

    1 网络拥塞问题 在网络交换机中 当入口流量大于出口流量的带宽时会发生网络拥塞 典型的例子是多个发送方同时向同一个目的地发送网络数据 交换机的缓存可以处理暂时的拥塞 但是当拥塞太久时 交换机的缓存就会过载 当交换机缓存过载时 下一个收到的新
  • mysql ipk 编译_OpenWrt的ipk包安装

    在 make menuconfig 进行裁减 OpenWrt 时 为了让系统更精小一点 我们会把部分功能以 模块 的方式编译 即不编入内核 只是在后期用户可以进行安装与卸载 包安装示例 如下关于Lua的配置项 其中 json4lua lua
  • 头文件库文件

    问题 不知道 Visual Studio 的头文件库文件如何配置 方法 C C gt 常规 gt 附加包含目录 添加头文件 链接器 gt 常规 gt 附加库目录 添加库目录 链接器 gt 输入 gt 附加依赖项 添加库文件
  • zip文件解压详解

    文章目录 1 起因 2 详解 3 实践 4 参考 1 起因 自己之前在linux系统解压zip文件 一直用 unzip zip 我们期望解压后的文件都是统一放到以 命名的文件夹下 但是自己有一次解压后发现所有的文件并没有放到上述文件夹下 而
  • 使用 @RequestMapping 注解,需要导入的包:spring-webmvc

    在Controller 层使用 RequestMapping注解 需要导入的包 spring webmvc 在类中需要添加 import org springframework web bind annotation RequestMapp
  • Pycharm激活方法使用的是(license server)Activate new license with: License server

    pycharm所有版本 http www jetbrains com pycharm download previous html 打开激活窗口 选择 Activate new license with License server 用li
  • 【JVM调优】JDK11-JVM基本参数调优以及日志打印

    Parm Xmx2g Xms1g Xss256k XX MaxDirectMemorySize 256m XX UseG1GC XX UseCompressedOops XX UseCompressedClassPointers XX Se
  • Python Interview Questions: A Review

    本文转载至 https www udemy com blog python interview questions Python is an elegant and versatile language used for a wide va
  • java获取当前时间戳的方法

    https www cnblogs com zhujiabin p 6168671 html utm source itdadao utm medium referral 获取当前时间戳 方法 一System currentTimeMill
  • Qt中的位置和尺寸

    在QT中我们常见的 点 线 尺寸 矩形 都被进行了封装 下边依次为大家介绍相关的类 目录 QPoint QLine QSize QRect QPoint QPoint是C 编程语言中Qt框架中的一个类 它表示2D坐标系中的一个点 它用于定义