【Qt知识】Geometry属性

一、走进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.rhkb.cn/news/366598.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何获取音频伴奏

如何获取音频伴奏 在今天的互联网上,有许多好听的音乐.面对这些音乐,我们有时需要伴奏音频,许多音频在网站上可以查找到,但有些不行,今天,我们要通过audacity软件截取音频伴奏. 下载audacity软件 audacity-64.exe 访问密码:8221 或官方网站(访问较慢) 选择简体…

Modbus TCP与TCP/IP协议间的差异与应用场景

Modbus TCP概述 Modbus协议简介 Modbus是一种专为工业自动化系统设计的通信协议,采用主从模式,即一个主设备(通常是计算机或可编程逻辑控制器)与多个从设备(如传感器、执行器等)进行通信。Modbus协议具有…

(漏洞检查项) | 任意文件包含漏洞 file-include

(漏洞检查项)|任意文件包含漏洞 file-include 漏洞场景 1.含有动态包含语句 2.有类似于文件读取的url 漏洞描述 攻击者可以利用任意文件包含漏洞,读取任意文件,对服务器造成危害。 程序开发人员为了代码的灵活性,常常会将包含文件的路径…

Spring Cloud Circuit Breaker基础入门与服务熔断

官网地址&#xff1a;https://spring.io/projects/spring-cloud-circuitbreaker#overview 本文SpringCloud版本为&#xff1a; <spring.boot.version>3.1.7</spring.boot.version> <spring.cloud.version>2022.0.4</spring.cloud.version>【1】Circu…

KVM性能优化之CPU优化

1、查看kvm虚拟机vCPU的QEMU线程 ps -eLo ruser,pid,ppid,lwp,psr,args |awk /^qemu/{print $1,$2,$3,$4,$5,$6,$8} 注:vcpu是不同的线程&#xff0c;而不同的线程是跑在不同的cpu上&#xff0c;一般情况&#xff0c;虚拟机在运行时自身会点用3个cpus&#xff0c;为保证生产环…

TensorRT学习(二)TensorRT使用教程(Python版)

本文适合快速了解TensorRT使用的整体流程,具体细节还是建议参考TensorRT的官方文档。 加速原理: 加速原理比较复杂,它将会根据显卡来优化算子,以起到加速作用(如下图所示)。简单的来说,就是类似于你出一个公式1+1+1,而你的显卡支持乘法,直接给你把这个公式优化成了1*…

windows远程连接无法复制文件

windows远程桌面无法复制文件 解决方案 打开任务管理器管理器,在详细信息界面,找到rdpclip.exe进程&#xff0c;选中并点击结束任务&#xff0c;杀死该进程。 快捷键 win r 打开运行界面&#xff0c;输入 rdpclip.exe &#xff0c;点击确定运行。即可解决无法复制文件问题。…

prescan软件中导入路径文件txt/lpx

由于博主收到的是lpx格式的路径文件&#xff0c;因此&#xff0c;第一步 1.记事本打开 ctrla 全选 ctrlc 复制 2.新建一个excel 鼠标定位到第一行第一列的格子 ctrlv 复制 3.数据栏“分列”功能 4. (0.1递增的数列&#xff0c;纬度&#xff0c;经度&#xff0c;高程) 导入…

简单爬虫案例——爬取快手视频

网址&#xff1a;aHR0cHM6Ly93d3cua3VhaXNob3UuY29tL3NlYXJjaC92aWRlbz9zZWFyY2hLZXk9JUU2JThCJTg5JUU5JTlEJUEy 找到视频接口&#xff1a; 视频链接在photourl中 完整代码&#xff1a; import requestsimport re url https://www.kuaishou.com/graphql cookies {did: web_…

解决VSCode无法用ssh连接远程服务器的问题

原因&#xff1a; 因为windows自带的ssh无法连接远程服务器&#xff0c;需要用git底下的ssh.exe。 搜了很久&#xff0c;试过很多方法&#xff0c;包括替换掉环境变量中的ssh&#xff0c;但是都无效&#xff0c;最后发现是要在VSCode中配置需要使用哪个ssh.exe。 步骤&#…

深入分析 Android BroadcastReceiver (七)

文章目录 深入分析 Android BroadcastReceiver (七)1. 高级应用场景1.1 示例&#xff1a;动态权限请求1.2 示例&#xff1a;应用内通知更新 2. 安全性与性能优化2.1 示例&#xff1a;设置权限防止广播攻击2.2 示例&#xff1a;使用 LocalBroadcastManager2.3 示例&#xff1a;在…

【博主推荐】HTML5实现简洁好看的个人简历网页模板源码

文章目录 1.设计来源1.1 主界面1.2 关于我界面1.3 工作经验界面1.4 学习教育界面1.5 个人技能界面1.6 专业特长界面1.7 朋友评价界面1.8 获奖情况界面1.9 联系我界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c…

食品行业的安全护照:企业发展不可或缺的认证导航

在全球化的食品市场中&#xff0c;安全、质量和环境保护是企业通往成功的三大支柱。对消费者而言&#xff0c;这些因素是选择产品的核心考量&#xff1b;对企业来说&#xff0c;则是赢得市场和信任的基石。从农田到餐桌&#xff0c;食品的每一次加工和转换都承载着对健康和环境…

20240703 每日AI必读资讯

&#x1f916;爆火Character AI惨遭阉割 美国00后集体“失恋” - Character AI曾是00后最火爆的社交软件&#xff0c;但用户发现对话模型变得冷淡&#xff0c;失去趣味。 - 用户流失严重&#xff0c;面临成本高、竞争激烈的挑战&#xff0c;甚至遭到挖角。 - 尽管困难重重&a…

RabbitMQ进阶篇

文章目录 发送者的可靠性生产者重试机制实现生产者确认 MQ的可靠性数据持久化交换机持久化队列持久化消息持久化 Lazy Queue(可配置~)控制台配置Lazy模式代码配置Lazy模式更新已有队列为lazy模式 消费者的可靠性消费者确认机制失败重试机制失败处理策略 业务幂等性唯一消息ID业…

springboot数字化医院产科系统源码

目录 一、系统概述 二、开发环境 三、功能设计 四、功能介绍 一、系统概述 数字化产科是为医院产科量身定制的信息管理系统。它管理了孕妇从怀孕开始到生产结束42天一系列医院保健服务信息。该系统由门诊系统、住院系统、数据统计模块三部分组成&#xff0c;与医院HIS、LI…

智能版面设计:指令跟随模型在自动布局规划中的应用

在广告行业一个吸引人的视觉布局能够显著提升信息的传播效果。但对于非专业设计师来说&#xff0c;创建既美观又功能性强的布局常常是一项挑战。他们往往缺乏必要的设计技能、审美训练或资源来快速实现创意构想。传统的设计软件和在线工具虽然提供了一些模板和指导&#xff0c;…

让 SwiftUI 原生 TabView 支持标签页切换转场动画

功能需求 何曾几时,秃头码农们多么希望 SwiftUI 里原生 TabView 的标签页切换能够有转场动画效果。 如上图所示,我们在 SwiftUI 原生 TabView 视图的标签页切换时展现出美美哒的转场动画,本实现支持最新的 iPadOS 18 和 iOS 18 系统。这是怎么做到的呢? 在本篇博文中,您…

Windows 组策略编辑器怎么打开,这两种方法你必须知道

组策略编辑器&#xff08;Group Policy Editor, 简称 GPEdit.msc&#xff09;是 Windows 操作系统中一个强大的工具&#xff0c;主要用于管理和配置系统设置、安全选项、用户权限等&#xff0c;尤其适用于企业环境中批量部署和管理策略。 尽管家庭版 Windows&#xff08;如 Win…

文章智能改写工具哪个好?什么文都能改的智能写作工具

在学术探索的广袤海域中&#xff0c;撰写论文是一项考验我们知识深度和创新能力的必经之路。 我们可能会在这片海洋中遇到内容雷同、创意匮乏的暗礁。但不必惊慌&#xff0c;免费智能改写工具就像一盏导航明灯&#xff0c;照亮我们前行的道路。 今天&#xff0c;让我们一起探…