【Qt知识】Geometry属性

news2024/10/6 18:34:30

一、走进Geometry的世界

        Geometry属性是Qt框架中用于处理和操作几何形状的一系列类的集合。它包括了QPoint、QPointF、QSize、QSizeF、QRect和QRectF等。这些类分别代表点、大小、矩形等基本几何概念,它们的存在让图形界面的创建变得既简单又直观。

位置和尺寸。 其实是四个属性的统称:

• x 横坐标

• y 纵坐标

• width 宽度

• height ⾼度

二、从基础开始:QPoint与QPointF

如果你在一张白纸上画了一个点,这个点的位置就是由一对坐标(x, y)来确定的。在Qt中,QPointQPointF就扮演了这个角色。QPoint用于整数坐标,而QPointF则适用于浮点数坐标,提供更精确的位置信息。

QPoint point(100, 200);
QPointF pointF(100.5, 200.5);

三、尺寸的秘密:QSize与QSizeF

接下来,我们来看看如何描述一个对象的大小。QSizeQSizeF就是用来表示宽度和高度的。与点类似,QSize使用整数,而QSizeF则使用浮点数,为你的设计提供更多的灵活性。

QSize size(300, 400);
QSizeF sizeF(300.5, 400.5);

四、构建你的矩形王国:QRect与QRectF

当你需要处理一个矩形区域时,QRectQRectF就派上用场了。它们不仅包含了位置信息(通过左上角的点),还包含了大小信息。这使得在Qt中绘制窗口、按钮或任何矩形元素变得异常简单。

QRect rect(10, 20, 300, 400);
QRectF rectF(10.5, 20.5, 300.5, 400.5);

五、实践出真知-表白程序

(1) 将两个按钮和一个 Label 拖到界面上

(2) 在 widget.cpp 中添加 slot 函数
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //时间戳设置时间种子
    srand(time(0));
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_Yes_clicked()
{
    ui->label->setText("太好了");
}


void Widget::on_No_pressed()
{
    //随机在屏幕内部挪走

    //1.获取尺寸
    int width = this->geometry().width();
    int height = this->geometry().height();

    //2.生成位置
    int x = rand() % width;
    int y = rand() % height;

    //3.移动位置
    ui->No->move(x,y);
}
(3) 运行程序, 可以看到, 当点击 "残忍拒绝" 时, 按钮就跑了(哈~哈~哈~)


以上内容仅为简要介绍,Qt的Geometry控件远比这里描述的要丰富和强大。笔者鼓励大家深入研究,发掘更多可能。编程的乐趣在于不断探索和实践!

 

 

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

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

相关文章

DCS-11双位置继电器 DC220V 板前接线带底座 约瑟 JOSEF

系列型号: DCS-11双位置继电器; DCS-12双位置继电器; DCS-13双位置继电器; ​用途 RXMVB2(DCS-10)系列双位置继电器用于需要大容量双稳态触点的工业控制和其它一般控制场合。 特点 体积小,拆装方便,能安…

phpMyAdmin | mysqli::real_connect(): (HY000/2002): No such file or directory

法一:第一次安装宝塔 第一次安装宝塔mysql服务是默认关闭的,需要手动打开,打开服务再次进入phpMyAdmin发现可以进入了 法二:第一种方法没解决用这种 出现mysqli::real_connect(): (HY000/2002): No such file or directory错误通…

java spring 拦截器和过滤器+过滤器处理数据

java spring 拦截器和过滤器过滤器处理数据 介绍Spring拦截器(Interceptor)导入依赖完整代码 Java过滤器(Filter)完整代码分为 2 个文件,请看下面BodyReaderHttpServletRequestWrapper.javaMyFilter.java Spring过滤器…

昇思25天学习打卡营第6天|linchenfengxue

​​​​​​SSD目标检测 SSD,全称Single Shot MultiBox Detector,是Wei Liu在ECCV 2016上提出的一种目标检测算法。使用Nvidia Titan X在VOC 2007测试集上,SSD对于输入尺寸300x300的网络,达到74.3%mAP(mean Average Precision)以…

网络编程常见问题

1、TCP状态迁移图 2、TCP三次握手过程 2.1、握手流程 1、TCP服务器进程先创建传输控制块TCB,时刻准备接受客户进程的连接请求,此时服务器就进入了LISTEN(监听)状态; 2、TCP客户进程也是先创建传输控制块TCB&#xff…

操作系统期末复习考题三(不挂科系列)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、前言🚀🚀🚀二、正文☀️☀️☀️三、总结🍓🍓🍓 一、前言🚀🚀&am…

【操作系统期末速成】 EP03 | 学习笔记(基于五道口一只鸭)

文章目录 一、前言🚀🚀🚀二、正文:☀️☀️☀️2.1 考点五:进程的概念及特征2.1 考点六:进程的状态与切换 一、前言🚀🚀🚀 ☀️ 回报不在行动之后,回报在行动…

isalnum()方法——判断字符串是否由字母和数字组成

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 isalnum()方法用于判断字符串是否由字母和数字组成。isalnum()方法的语法格式如下: str.isalnum() 如果字符串中至少有一个字…

install nebula with source

linux 环境:ubuntu 2004 默认gcc 7.5 nebula requerment: g 8.5 above 下载source git clone --branch release-3.8 https://github.com/vesoft-inc/nebula.git install gcc g 11 apt install gcc-11 g-11 此时 linux环境存在多个版本gcc&#xff1a…

运算放大器(运放)带宽和带宽平坦度

运算放大器带宽和带宽平坦度 电压反馈型运算放大器的带宽 下图1显示电压反馈型运算放大器的开环频率响应。有两种可能:图1A是最常见的情况,高直流增益以6dB/倍频程从极低频率下降至单位增益,也就是典型的单极点响应。相比之下,图…

快速降低地平线4延迟 极限竞速地平线4延迟严重这样做

极限竞速地平线4全新的开放式剧情设计,让玩家的每一次驾驶都充满了未知与挑战。与此同时,现实世界的玩家也将与玩家一同在这片土地上驰骋。在这里,时间、天气和四季的变化都仿佛触手可及,玩家将亲身体验到真实而震撼的赛车世界。在…

使用青否数字人直播软件有哪些优势?

使用青否数字人主播主要具有以下优势: 1、降低直播门槛 在垂直程度较高、专业度更强的行业,面对相关品牌们“专业主播难培养”的问题。数字人主播的学习技能和灵活优势尽显。通过数字人直播可以借助知识库配置与AI能力,快速获得技术性知识&am…

【数据结构|C语言版】四大排序(算法)

前言1. 插入排序1.1 直接插入排序1.2 希尔排序 2. 选择排序2.1 选择排序2.2 堆排序 3. 交换排序3.1 冒泡排序冒泡排序的步骤 3.2 快速排序快速排序的步骤 4. 归并排序归并排序的步骤:代码解释:归并排序的性能: 上期回顾: 【数据结构|C语言版】…

计算几何系列——XCPC中计算几何一些题型杂谈(中)

本系列文章力求以简洁易懂的文字介绍计算几何中的基本概念,使读者快速入门,故不追求难度和深度,仅起到抛砖引玉的作用。 在XCPC中有一种题叫计算几何,这类题在大多数时候都作为一类金牌题甚至防AK题的难度出现,但是在…

3A信用认证的多重作用及其对企业发展的重要意义

在现代商业环境中,企业信用评级已经成为衡量企业信用状况和市场竞争力的重要指标。AA信用认证作为信用评级中的高级别认证,能够为企业带来多方面的积极影响,促进其在市场中的健康发展。本文将详细探讨3A信用认证的多重作用及其对企业发展的重…

鸿蒙开发HarmonyOS NEXT (一) 入门

最近总听见大家讨论鸿蒙,前端转型的好方向?先入门学习下 目前官方版本和文档持续更新中 一、开发环境 提示:要占用的空间比较多,建议安装在剩余空间多的盘 1、下载:官网最新工具 - 下载中心 - 华为开发者联盟 (huaw…

1、项目基础

1、系统架构图 2、项目业务组成 3、技术选型 3.1 前端 vue3 ts sass axios 3.2后端 spring-cloud系列 gateway openfeign spring-cloud-alibaba系列 nacos sentinel seata

【LLM 评估】GLUE benchmark:NLU 的多任务 benchmark

论文:GLUE: A Multi-Task Benchmark and Analysis Platform for Natural Language Understanding ⭐⭐⭐⭐ arXiv:1804.07461, ICLR 2019 Site: https://gluebenchmark.com/ 文章目录 一、论文速读二、GLUE 任务列表2.1 CoLA(Corpus of Linguistic Accep…

标准版小程序订单中心path审核不通过处理教程

首先看自己小程序是不是已经审核通过并上线状态才在站内信里面提醒的? 如果没有提交过审核,请在提交的时候填写。path地址为:pages/goods/order_list/index 如果是已经上线的小程序,当时没要求填这个,但新的政策要求填…

查看linux服务磁盘类型

查看linux服务磁盘类型 查看当前服务器磁盘挂载类型 df -h2. 查看/dev/mapper/centos-root挂载卷类型 # 查询 lsblk# 查询磁盘类型 lsblk -d -o name,rota | grep sda # 说明 sda 0 代表固态硬盘ssd sda 1 代表机械硬盘hdd