【Qt】控件——Qt控件的介绍、QWidget的介绍、QWidget的属性、QWidget的函数

文章目录

  • Qt
  • 1. 控件的概念
  • 2. QWidget
      • enabled
      • geometry
      • windowTitle
      • windowIcon
      • windowOpacity
      • cursor
      • font
      • toolTip
      • toolTipDuring
      • styleSheet

Qt

在这里插入图片描述
  

1. 控件的概念

  Widget 是 Qt 中的核心概念。英文原义是 “小部件”,我们此处也把它翻译为 “控件”。控件是构成一个图形化界面的基本要素。按钮、列表视图、输入框,、滚动条、下拉框等。都可以称为 “控件”。Qt内置了大量的常用控件。

  

2. QWidget

enabled

  设置控件是否可使用。true 表示可用,false 表示禁用。

  isEnabled () 获取到控件的可用状态。

  setEnabled 设置控件是否可使用。true 表示可用,false 表示禁用。

  

  示例:创建一个按钮并且设置为禁用状态。

  1. 创建一个按钮并且设置setEnabled是否可以,true为可用,false为不可用。

在这里插入图片描述

  

  示例:创建两个按钮,其中一个按钮可以控制另一个按钮的禁用状态。

  1. 我们在父类Widget中创建两个按钮类QPushButton。

在这里插入图片描述
  

  1. 调整按钮的位置和大小,并且连接信号槽,btn1是被控制的按钮,当btn1未被禁用时,点击btn1会触发信号槽输出 " 按下按钮btn1 "。btn2是控制按钮,点击可以切换btn1的禁用状态。

在这里插入图片描述

  

  1. 运行程序,实现了示例的要求。
    在这里插入图片描述

  

geometry

  位置和尺寸,包含 x、y、width、height 四个部分。其中坐标是以父元素为参考进行设置的。

  位置和尺寸,是四个属性的统称:

  • x 横坐标
  • y 纵坐标
  • width 宽度
  • height 高度

  

在这里插入图片描述
  

  示例:创建上下左右四个按键,点击按钮可以控制Target向对应的方向移动。

  1. Qt可以通过代码或可视化界面创建控件,这里使用可视化界面创建所需要的控件。

在这里插入图片描述

  

  1. 对上下左右四个方向的按钮关联信号槽,控制上下左右位置的变化,要注意这里是先获取Target的原始位置进行调整,如果不想让Target发生形变,必须保持rect.width()和rect.height()不变,只改变Target的位置。

在这里插入图片描述
  

  1. 可以看到我们可以控制Target的位置移动了。

在这里插入图片描述

  

windowTitle

  设置 widget 标题。
  

  1. 直接使用setWindowTitle设置标题名即可。

在这里插入图片描述
  

windowIcon

  设置 widget 图标。

  设置图标时,我们必须导入图片到我们的项目中,当然可以直接使用决定路径,但是Qt提供qrc机制管理静态资源。

  
  qrc是qt的资源管理方案:

  qrc 文件是一种 XML 格式的资源配置文件,用 XML 记录硬盘文件及对应资源名称,应用程序通过资源名称访问资源。在 Qt 开发中可将资源文件添加到项目以便访问和管理,资源文件可在 qrc 文件所在目录同级或子目录下。构建程序时,Qt 把资源文件二进制数据转成 cpp 代码编译到 exe 中,使依赖资源 “路径无关”。
  
  优点:确保了图片、字体、声音等资源能够真正做到 “目录无关”,无论如何都不会出现资源丢失的情况。

  缺点:不适合管理体积大的资源。如果资源比较大(比如是几个 MB 的文件),或者资源特别多,生成的最终的 exe 体积就会比较大,程序运行消耗的内存也会增大,程序编译的时间也会显著增加。
  

  1. 创建一个新文件,要创建Qt Resource File。

在这里插入图片描述

  

  1. 设置文件名。

在这里插入图片描述
  

  1. 打开该文件,并且设置保存图片的路径,简单一点即可。

在这里插入图片描述
  

  1. 添加我们需要的文件即可。

在这里插入图片描述

  

  1. 添加成功了,有了资源的路径就可以在我们的项目中使用了。

在这里插入图片描述

  

  1. QIcon是图像对象,用我们复制的路径创建一个新的QIcon并且设置到Widget,可以看到窗口的图标就改变了。
    在这里插入图片描述

  

windowOpacity

  设置 widget 透明度。
  

  1. 使用setWindowOpacity调整窗口的透明度。

在这里插入图片描述

  

cursor

  鼠标悬停时显示的图标形状,可以是普通箭头、沙漏、十字等形状,在 Qt Designer 界面中可清楚看到可选项。
  

  1. setCursor用来设置鼠标悬停图标,这里截图没有显示。

在这里插入图片描述

  

font

  字体相关属性,涉及字体家族、字体大小、粗体、斜体、下划线等样式。
  

  1. 设置字体

在这里插入图片描述
  

toolTip

  鼠标悬停在 widget 上会在状态栏中显示的提示信息。

ui->label1->setToolTip("这是文字");

  

toolTipDuring

  toolTip 显示的持续时间。

ui->label1->setToolTipDuration(3000);

  

styleSheet

  允许使用 CSS 来设置 widget 中的样式,Qt 中支持的样式非常丰富,对于前端开发人员上手非常友好。
  

  编辑右侧的 styleSheet 属性, 设置样式:

在这里插入图片描述

  

在这里插入图片描述

            

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

吴恩达深度学习笔记(7)

误差分析: 你运行一个算法代替人类计算,但是没有达到人类的效果,需要手动检查算法中的错误,对模型的一些部分做相应调整,才能更好地提升分类的精度。如果不加分析去做,可能几个月的努力对于提升精度并没有…

Linux文件你不知道的那些事,搞清楚磁盘空间占用的问题

在进行采集日志时,日志文件明明被滚动压缩并转移走了,但是发现磁盘空间还是在不断增长,统一目录下的总文件大小,发现与实际占用也不符,于是想到可能是文件句柄未释放导致的,本文就来记录一下文件及文件句柄…

git clone 国内镜像

比如 git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git 改成 git clone https://gitclone.com/github.com/HKUST-Aerial-Robotics/A-LOAM.git

MySQL 查询按照更新时间排序遇到相同更新时间的会少数据

MySQL分页后出现重复数据或丢失记录的原因可能包括:SQL查询条件不一致、使用了不稳定的排序、LIMIT语句与ORDER BY配合问题、缓存设置不当或数据库复制配置错误。需要检查查询逻辑和系统配置以解决这些问题。 MySQL分页导致数据重复的原因: 1、排序算法…

补题:C. Paprika and Permutation

C. Paprika and Permutation 传送门&#xff1a;Problem - 1617C - Codeforces 题意&#xff1a; 思路&#xff1a; 首先这个题要知道这个结论&#xff1a; 当 x > a[i] 时&#xff0c;a[i] mod x a[i] 当 x < a[i] 时&#xff0c;0 < a[i] % x < ( a[i] 1 )…

【unity小技巧】Unity6 LTS版本安装和一些修改和新功能使用介绍

文章目录 前言安装新功能变化1、官方推荐使用inputsystem进行输入控制2、修复了InputSystem命名错误导致listen被遮挡的bug3、自带去除unity启动画面logo功能4、unity官方的behavior行为树插件5、linearVelocity代替过时的velocity方法待续 完结 前言 2024/10/17其实unity就已…

ChatGPT 现已登陆 Windows 平台

今天&#xff0c;OpenAI 宣布其人工智能聊天机器人平台 ChatGPT 已开始预览专用 Windows 应用程序。OpenAI 表示&#xff0c;该应用目前仅适用于 ChatGPT Plus、Team、Enterprise 和 Edu 用户&#xff0c;是一个早期版本&#xff0c;将在今年晚些时候推出"完整体验"。…

【Java函数篇】Java8中函数接口Function使用详解

文章目录 函数接口Function函数式接口只允许有一个抽像方法通过Lambda表达式实现接口 FunctionalInterface注解构建一个函数式接口使用自己创建的函数式接口 JDK中的函数式接口Function函数最常用的Function<T,R>使用apply(T t)andThen(Function<? super R,? extend…

CTF(五)

导言&#xff1a; 本文主要讲述在CTF竞赛中&#xff0c;web类题目easyphp。 靶场链接&#xff1a;攻防世界 (xctf.org.cn) 参考文章原文链接&#xff1a;Web安全攻防世界05 easyphp&#xff08;江苏工匠杯&#xff09;_攻防世界 easyphp-CSDN博客 一&#xff0c;观察页面。…

OpenCV学习笔记5——图像的数值计算

目录 一、简单数值计算 二、opencv中提供函数进行计算 三、cv2.addWeighted 一、简单数值计算 在opencv中&#xff0c;我们有许多可以获取图像各类数值的办法&#xff0c;许多函数能获得各种方面的数据。但如果我们什么都不用&#xff0c;仅仅对图像上每一个点做加法运算会…

计算机网络:数据链路层 —— 扩展共享式以太网

文章目录 共享式以太网共享式以太网存在的问题在物理层扩展以太网扩展站点与集线器之间的距离扩展共享式以太网的覆盖范围和站点数量 在链路层扩展以太网网桥的主要结构网桥的基本工作原理透明网桥自学习和转发帧生成树协议STP 共享式以太网 共享式以太网是当今局域网中广泛采…

【MySQL】表的约束、基本查询、内置函数

目录 1. 表的约束1.1 空属性1.2 默认值1.3 列描述1.4 zerofill1.5 主键1.6 自增长1.7 唯一键1.8 外键 2. 基本查询2.1 表的增删改查2.1.1 插入数据2.1.2 插入否则更新2.1.3 替换插入 2.2 Retrieve2.2.1 select ----- 查询2.2.2 where ----- 筛选2.2.3 order by ----- 结果排序2…

全方面熟悉Maven项目管理工具(一)认识Maven、Maven如何安装?

1. Maven 1.1 应用场景&#xff1a; 本地仓库&#xff1a; 我们使用的jar依赖于maven的本地仓库 自动部署&#xff1a; 本地仓库推送到远程仓库&#xff0c; 远程库通知 Jenkins工具&#xff0c;Jenkins 调用Maven构建war包&#xff0c;Jenkins 再调用准备好的脚本程序&…

linux jdk环境变量变量新配置方式

1.jdk17--> jdk8环境变量配置,source /etc/profile了也不生效 which java #假设上命令运行结果为/usr/bin/java rm -rf /usr/bin/javaln -s $JAVA_HOME/bin/java /usr/bin/java source /etc/profile# 断开本次远程连接&#xff0c;重连检查java -version 2.jdk环境变量变…

UDP和TCP的区别

UDP&#xff08;User Datagram Protocol&#xff09;和TCP&#xff08;Transmission Control Protocol&#xff09;是两种不同的传输层协议&#xff0c;它们在数据传输的方式和可靠性方面有显著区别&#xff1a; 连接方式&#xff1a; TCP&#xff1a;面向连接的协议&#xff0…

Unity DOTS中的Archetype与Chunk

Unity DOTS中的Archetype与Chunk 在Unity中&#xff0c;archetype&#xff08;原型&#xff09;用来表示一个world里具有相同component类型组合的entity。也就是说&#xff0c;相同component类型的entity在Unity内部会存储到一起&#xff0c;共享同一个archetype。 使用这样的设…

Linux系统:本机(物理主机)访问不了虚拟机中的apache服务问题的解决方案

学习目标&#xff1a; 提示&#xff1a;本文主要讲述-本机(物理主机)访问不了虚拟机中的apache服务情况下的解决方案 Linux系统&#xff1a;Ubuntu 23.04&#xff1b; 文中提到的“本机”&#xff1a;代表&#xff0c;宿主机&#xff0c;物理主机&#xff1b; 首先&#xff0c…

linux 中mysql my.cnf 配置模版

前置准备 sudo systemctl stop mysqld 注意&#xff1a; 原本配置重命名做备份 备份数据 删文件 直接新建 my.cnf 把配置 11要粘进去的内容 直接粘进去 注意&#xff1a;尽管log-bin 和 log_bin 都可以启用二进制日志&#xff0c;但为了保持与现代MySQL版本的兼容性和一…

物流行业创新:SpringBoot技术应用

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

24.安卓逆向-frida基础-objection工具3-实战

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;图灵Python学院 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要盲目相信。 工…