Qt常用控件之QWidget(一)

Qt常用控件之QWidget(一)

  • 1.QWidget
  • 2.enabled属性
  • 2.geometry

🌟🌟hello,各位读者大大们你们好呀🌟🌟
🚀🚀系列专栏:【Qt的学习】
📝📝本篇内容:QWidget;enabled属性;geometry
⬆⬆⬆⬆上一篇:Qt的信号与槽(三)
💖💖作者简介:轩情吖,请多多指教(>> •̀֊•́ ) ̖́-

1.QWidget

在我们学习常用控件时,第一个要关注的肯定是QWidget,因为QWidget是很多控件的父类,它在图形化界面中就是一个窗口,我们可以点击它来查看它的属性
在这里插入图片描述
在这里插入图片描述
上图展示了大部分属性的一个解释,可以先做一个简单的了解,只看文字肯定不能做到完全理解。

2.enabled属性

这个是讲的第一个属性,也是比较简单,它的功能是描述一个控件是否是可用状态,那么它相对地概念就是禁用
并且这个“禁⽤” 指的是该控件不能接收任何⽤⼾的输⼊事件, 并且外观上往往是灰⾊的,如果⼀个 widget 被禁⽤, 则该 widget 的⼦元素也被禁⽤
enabled有两个可用的函数

函数声明函数功能
isEnabled()获取控件的状态
setEnabled(bool false)设置控件的状态,true为可用,false为禁用

我们可以通化这个两个函数来实现一个功能:通过一个按钮来控制另一个按钮的可用状态

在这里插入图片描述
在这里插入图片描述
我们可以观察到我们两个按钮的objectName是不一样的,是以控件类型+下划线+编号的规律来的,前面也讲过,控件的objectName是必须不一样的,后续我们就可以通过ui指针来进行指向objectName,指向想要的对象。我们可以进行重命名,将“切换按钮状态”的按钮的objectName改成pushButton_switch,更加有可读性。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们也通过打调试信息的方式来测试了“按钮”的功能,也可以发现,我们的按钮一旦禁用,就会变成灰色

2.geometry

接下来要讲的一个属性是geometry,但是我们要首先关注的是它的一个发音和中文释义以及它的拼写
在这里插入图片描述
它的中文意思是几何的意思,在Qt中表示的是位置和尺寸的统称,即x,y,width,height,分别对应的是:横坐标,纵坐标,宽度,高度。如图所示是各个属性表示的内容
在这里插入图片描述
在前面也讲过我们计算机中的坐标系是左手坐标系,其坐标系的原点是当前元素的⽗元素的左上⻆。
我们在实际的开发中,并不会直接使用这几个属性,而是通过封装的形式来获取和修改,就如同这里的geometry
接下来我们介绍一下关于geometry这个属性的相关函数

函数声明 函数功能
const QRect& geometry() const获取控件的位置和尺寸,返回值是一个QRect类型的,是“矩形”英文的缩写,它包含了前面提到的四个属性
void setGeometry(const QRect &)设置控件的位置和尺寸,以QRect这个类型为整体进行设置
void setGeometry(int x, int y, int w, int h)设置控件的位置和尺寸,以四个单独的属性进行设置

接下来我们写代码演示,功能是:通过四个按钮来控制一个按钮的四个方向移动
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置了四个按钮,并且分别对其objectName重新命名
在这里插入图片描述
在这里插入图片描述
move的功能是单纯的修改位置,但是geometry既可以修改位置还可以修改尺寸,并且我们在代码中使用了qDebug()宏来打印位置尺寸信息,这些数字的单位都是像素,qDebug()能够自动识别并打印出QRect类型的内容。但是有一个问题,为什么我们修改了它的坐标轴,它的尺寸也会发生改变?有没有什么办法让按钮单纯的移动位置呢?
我们仔细观察就能发现,它其实是一直在调整左上角的位置,但是也同时调整了宽度和高度,我们的代码修改的是QRect的x和y(矩形会不断的变化),如果想要达到按钮平移就需要用到我们之前讲的第二个函数,不再修改QRect,而是基于QRect的数据通过setGeometry进行挨个设置。
在这里插入图片描述
在这里插入图片描述

🌸🌸Qt常用控件之QWidget(一)大概就讲到这里啦,博主后续会继续更新更多Qt的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!如有小伙伴需要Qt的安装包可以私信我,你们的支持是博主坚持创作的动力!💪💪

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

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

相关文章

AIOT开发选型:行空板 K10 与 M10 适用场景与选型深度解析

前言 随着人工智能和物联网技术的飞速发展,越来越多的开发者、学生和爱好者投身于创意项目的构建。 在众多的开发板中,行空板 K10 和 M10 以其独特的优势脱颖而出。 本文旨在为读者提供一份详尽的行空板 K10 和 M10 对比分析,从适用场景、…

redis汇总笔记

语雀完整版: https://www.yuque.com/g/mingrun/embiys/calwqx/collaborator/join?tokensLcLnqz5Rv8hOKEB&sourcedoc_collaborator# 《Redis笔记》 Redis 一般问题 Redis内存模型(I/O多路模型)多路复用IO如何解释 为什么Redis要使用单线…

STM32用PWM驱动步进电机

硬件介绍:连线:注意这里stp连的是pwm脉冲,dir连的是方向到时候代码pwm波形就是从这里来的,具体接线根据你的代码来注意要点:步进电机和舵机驱动是不一样的,它是根据步长来移动的,所以要开一个中…

力扣25.7.10每日一题——重新安排会议得到最多空余时间 II

Description 今天这道题和昨天类似,只是允许顺序变化。 Solution 把会议区间视作桌子,空余时间视作空位,我们要把一个桌子移到别的空位中。 初步想法是枚举桌子,找一个长度大于等于桌子长度的空位移过去。看上去,找…

IP报文分片与重组原理及实现分析

IP报文分片与重组原理及实现分析 引用: ppp/net/packet/IPFragment.hppp/net/packet/IPFragment.cpp 1. IP分片原理 当IP数据包大小超过MTU(最大传输单元)时,路由器/主机将其分割为多个片段传输,每个片段包含&…

[python]在drf中使用drf_spectacular

安装drf_spectacular 文档 pypi链接:https://pypi.org/project/drf-spectacular/ 文档链接:https://drf-spectacular.readthedocs.io/en/latest/readme.html 安装步骤 在环境中添加 pip install drf-spectacular在setting的INSTALLED_APPS中添加 INSTALLED_APPS [# ALL…

【Datawhale AI 夏令营】 用AI做带货视频评论分析(二)

5.预训练模型跑分 回顾赛题 回顾赛题任务 挑战与难点: 标注数据少 ——> 半监督学习 or 数据增强 聚类分析噪点影响严重 回顾Baseline 问题: TF-IDF无法捕捉以下语义。聚类分析粗糙,未评估聚类质量。 提升方案: 分类任务…

SPSSPRO:数据分析市场SaaS挑战者的战略分析

目录 第一部分:执行摘要 第二部分:平台解构:产品、架构与用户体验 2.1 SaaS范式转移:架构与起源 2.2 功能能力:分析师的工具箱 2.3 “智能分析”的价值主张 第三部分:市场渗透与受众细分 3.1 目标用户…

低版本hive(1.2.1)UDF实现清除历史分区数据

目标&#xff1a;通过UDF实现对表历史数据清除 入参&#xff1a;表名、保留天数N 一、pom文件 <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.…

C++中顶层const与底层const

在C中&#xff0c;const关键字用于定义常量&#xff0c;但它在指针和引用上下文中会产生两种不同的常量性&#xff1a;顶层const&#xff08;top-level const&#xff09;和底层const&#xff08;low-level const&#xff09;。理解它们的区别是避免编译错误和提高代码质量的关…

“SRP模型+”多技术融合在生态环境脆弱性评价模型构建、时空格局演变分析与RSEI指数生态质量评价

集成云端、桌面端等环境&#xff0c;结合遥感云计算、GIS空间分析&#xff0c;R语言统计分析的优势&#xff0c;以分析生态环境脆弱性的时空演变为主线。通过本课程的学习&#xff0c;您将掌握&#xff1a;第一&#xff0c;收集各类指标数据&#xff0c;构建的“生态压力度-生态…

算法学习笔记:17.蒙特卡洛算法 ——从原理到实战,涵盖 LeetCode 与考研 408 例题

在计算机科学和数学领域&#xff0c;蒙特卡洛算法&#xff08;Monte Carlo Algorithm&#xff09;以其独特的随机抽样思想&#xff0c;成为解决复杂问题的有力工具。从圆周率的计算到金融风险评估&#xff0c;从物理模拟到人工智能&#xff0c;蒙特卡洛算法都发挥着不可替代的作…

Tortoise 设置

如何关闭 Windows 下 TortoiseGit 任务栏里窗口标题的分支显示 一、引言 TortoiseGit 是一个专为团队协作设计的 Git 图形化客户端&#xff0c;旨在解决版本控制中常见的问题&#xff0c;如冲突、回滚、历史查看等。本文档是 TortoiseGit 的使用手册前言部分&#xff0c;旨在向…

[论文阅读] 人工智能 + 软件工程 | AI助力软件可解释性:从用户评论到自动生成需求与解释

AI助力软件可解释性&#xff1a;从用户评论到自动生成需求与解释 Automatic Generation of Explainability Requirements and Software Explanations From User ReviewsarXiv:2507.07344 Automatic Generation of Explainability Requirements and Software Explanations From …

C语言---自定义类型(上)(结构体类型)

结构体结构体的定义与声明结构体其实和数组一样&#xff0c;都是一些值的集合&#xff0c;只不过数组是一系类相同类型的值&#xff0c;而结构体里边的成员可以是不同的数据类型。关于它的声明&#xff0c;所用到的关键字是struct。声明的语法如下&#xff1a;struct 结构体名{…

Java观察者模式实现方式与测试方法

一、实现方式 自定义实现 通过手动定义Subject和Observer接口&#xff0c;实现一对多依赖关系&#xff1a; // 观察者接口 public interface Observer {void update(float temp, float humidity, float pressure); } // 主题接口 public interface Subject {void registerObser…

leetGPU解题笔记(1)

1.题面 题目要求 向量加法 实现一个程序&#xff0c;在GPU上对两个包含32位浮点数的向量执行逐元素加法。该程序应接受两个长度相等的输入向量&#xff0c;并生成一个包含它们和的输出向量。 实现要求 禁止使用外部库 solve函数签名必须保持不变 最终结果必须存储在向量C中 示例…

5. JVM 的方法区

1. JVM介绍和运行流程-CSDN博客 2. 什么是程序计数器-CSDN博客 3. java 堆和 JVM 内存结构-CSDN博客 4. 虚拟机栈-CSDN博客 5. JVM 的方法区-CSDN博客 6. JVM直接内存-CSDN博客 7. JVM类加载器与双亲委派模型-CSDN博客 8. JVM类装载的执行过程-CSDN博客 9. JVM垃圾回收…

网络安全的基本练习

一.docker搭建 1.安装dockerapt-get install docker.io docker-compose2.编写配置文件&#xff08;注意路径正确&#xff09;vim /etc/systemd/system/docker.service.d/http-proxy.conf[Service] Environment"HTTP_PROXYhttp://科学上网访问的ip:端口" Environment&…

380. O(1) 时间插入、删除和获取随机元素

实现RandomizedSet 类&#xff1a; RandomizedSet() 初始化 RandomizedSet 对象 bool insert(int val) 当元素 val 不存在时&#xff0c;向集合中插入该项&#xff0c;并返回 true &#xff1b;否则&#xff0c;返回 false 。 bool remove(int val) 当元素 val 存在时&#xff…