Qt中的位置和尺寸

这篇具有很好参考价值的文章主要介绍了Qt中的位置和尺寸。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在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进行相交判断等操作。文章来源地址https://www.toymoban.com/news/detail-494604.html

到了这里,关于Qt中的位置和尺寸的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • opencv关于使用cvRotatedRect函数计算并画出矩形四个点的返回位置

    画矩形操作 Point center = Point((left.center.x + right.center.x) / 2, (left.center.y + right.center.y) / 2);                         RotatedRect rect = RotatedRect(center, Size(dis, meanheight), (left.angle +                                    right.angle) / 2);//计算装甲板的四个角点               

    2024年02月13日
    浏览(42)
  • 939. 最小面积矩形;2166. 设计位集;2400. 恰好移动 k 步到达某一位置的方法数目

    939. 最小面积矩形 核心思想:枚举矩形的右边那条边的两个点,并用一个哈希表存储相同纵坐标的最近出现的列的列数,不断更新最近出现的左边那条边。  2166. 设计位集 核心思想:这题主要是时间复杂度的优化,用一个flag来标记当前翻转了奇数次1还是偶数次0,这样就不用

    2024年02月12日
    浏览(46)
  • C++/Qt获取屏幕尺寸和放大比例

    直接上代码 屏幕放大倍数 100% 125% 150% 200%,对应的dpiVal值为:96、 120、 144 、192。 即上面变量dotPix1、dotPix2、dotPix3、dotPix4获取的值都是96 120 144 192其中的一个值。 函数介绍 1、logicalDotsPerInchX : const qreal This property holds the number of logical dots or pixels per inch in the horizontal direction T

    2023年04月24日
    浏览(46)
  • Qt之QPainter绘制多个矩形/圆形(含源码+注释)

    下图绘制的是矩形对象,但是将绘制矩形函数(drawRect)更改为绘制圆形(drawEllipse)即可绘制圆形。 绘制矩形需要自然要获取矩形数据,因此通过鼠标事件获取每个矩形的rect数据(鼠标按下为起始点,鼠标释放为结束点;每次移动时的当前位置做结束点,并实时刷新,实现

    2023年04月25日
    浏览(120)
  • Qt 测量文字展示尺寸的两种方式

    比如我想求字符串中最大的字符宽度,这个时候对每个字符的宽度求值肯定不是固定的,所以可以先用 MAXFLOAT 做约束,自适应宽度,代码如下: 某些情况下我想做文字的自动折行,指定了文本展示框的宽度之后,高度要通过折行策略达到自适应的效果:

    2024年02月06日
    浏览(63)
  • 【前端知识】Three 学习日志(十)—— 常见几何体(长方体、球体、圆柱、矩形平面、圆形平面)

    Three 学习日志(十)—— 常见几何体(长方体、球体、圆柱、矩形平面、圆形平面) 一、构建常用几何体 二、 遍历加入场景中 三、效果展示 四、完整代码

    2024年02月07日
    浏览(38)
  • 《QT从基础到进阶·十五》用鼠标绘制矩形(QGraphicsView、QPainter、QGraphicsRectItem)

    以下是鼠标绘制矩形最全的一种用法,完整源码将会放在最后面。 QT版本:5.15.2 VS版本:2019 1、在界面加载一张图片 界面的搭建选用QGraphicsView,自定义类GraphicsView继承QGraphicsView,在主程序中点击按钮打开 图片,相关代码如下: 2、创建矩形绘制对象,并绘制、移动矩形 在

    2024年02月04日
    浏览(52)
  • [Qt学习笔记]Halcon窗口界面上显示文字的字体尺寸、样式修改

    养成良好的查资料习惯,可以实现事半功倍。 在Halcon12中,有set_font和set_display_font两个算子,其中set_display_font是本地函数形式,所以最终的实现算子为set_font. 按照不同的系统环境下,使用方法略有不同: 不同的系统下使用的方法不同,原本以为比较简单,直接按照文档的

    2024年03月20日
    浏览(56)
  • VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小

    VS版本:VS2019 QT版本:Qt5.12.3(msvc2017_64) 为了适配不同尺寸的显示屏,软件窗口需要调整大小,窗口内的控件尺寸也要适配窗口的大小。 本例重点讲述如何设置可调整尺寸的窗口及控件,实现窗口最大化和尺寸调节。 本例使用相对简单的按键和文本框来做示例,其他控件均可

    2023年04月23日
    浏览(110)
  • 3. QT环境下使用OPenCV操作图像数据(读取、保存、尺寸调节、色彩变换等)

    1. 说明 图像加载完成后,如果需要显示出来,需要使用 imshow 函数,在QT框架下,可以不使用这个函数。本文的操作都是将读取到的图像数据绘制到一个 QLabel 控件上即可。 使用opencv自带的显示函数示例:

    2024年02月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包