Qt入门(二):Qt的基本组件

目录

Designer程序面板

1、布局Layout

打破布局

贴合窗口

2、QWidget的属性

3、Qlabel标签

显示图片

[4、QAbstractButton 按钮类](#4、QAbstractButton 按钮类)

按钮组

[5、QLineEdit 单行文本输入框](#5、QLineEdit 单行文本输入框)

[6、ComboBox 组合框](#6、ComboBox 组合框)

7、若干与数字相关的组件


Designer程序面板

Qt包含了一个Designer程序 ,用于通过可视化界面设计开发界面,保存的文件格式为.ui(界面文件)。界面文件内部使用xml语法的标签式语言。
在Qt Creator中创建项目时,选中界面文件选项,可以让自带的窗口类使用界面文件。


可以看到项目中会增加一个界面文件,双击此文件,可以直接使用内置的Designer程序打开并设计。

Designer程序面板区域划分如下所示:

所有Designer中的操作都可以通过C++代码实现。

1、布局Layout

可以把布局看做成一个透明的盒子,内部可以放置子组件,这些内部的子组件会按照布局的预设规律自动排序。

布局是可以嵌套的,对于外层布局而言,内层布局相当于外层布局的子组件。

一般比较常用垂直布局和水平布局的方式。

· 垂直布局:内部组件竖着排成一排。

· 水平布局:内部组件横着排成一排。
常用属性如下:

打破布局

选中布局后,点击可以打破布局。

贴合窗口

布局可以贴合窗口,只要选中窗口对象后,再次点击 按钮之一即可。

使用 Spacers 伸展器组件可以填充空白。

这样组件之间的缝隙可以随着窗口等比例缩放。

效果如下:

2、QWidget的属性

QWidget的属性在Designer中显示为淡黄色,下面是一些常用属性:

3、Qlabel标签

QLabel用于显示文字和图片,需要注意的是,QLabel不能与用户交互的,只能展示使用,因此没有合适的信号函数。
QLabel常用属性如下:

显示图片

Qt可以直接从本地读取图片,支持绝对路径和相对路径,但是并不建议这样做,原因是换一台计算机运行程序时,这些图片路径可能会存在改变。

建议先把图片导入到项目中,成为项目资源,直接使用Qt虚拟的资源路径导入图片,可以在任何环境下使用这些资源图片。

注意导入的图片不能特别大(分辨率过高或文件体积过大),因为图片的操作非常消耗程序资源。

下面是导入图片成为项目资源的操作步骤:

  1. 把命名好(不包含中文字符)的图片文件放置到项目的工作目录中。

  2. 在Qt Creator中选中项目名称,鼠标右键,点击"添加新文件"。

  1. 在弹出的窗口中,按照下图所示操作。

  2. 在弹出的窗口中给资源文件命名,例如res

  3. 在项目管理界面,直接点击"完成",可以看到在项目中多了一个.qrc格式的资源文件。

  4. 首先选中qrc文件,点击添加前缀,可以给资源文件一个新建的虚拟路径。

  1. 添加完成前缀后,点击,可以导入图片到项目中称为资源。

  2. 导入成功后,可以在qrc文件中看到导入成功的图片。

  3. 点击窗口左下角的(快捷键 Ctrl+B)重新构建项目,然后就可以在Designer找到图片资源并使用了。

4、QAbstractButton 按钮类

QAbstractButton是按钮类的抽象基类,因此内部包含了按钮的基础属性和函数。

相关组件

常用属性:

按钮类的常用信号函数:

按钮组

可以使用 QButtonGroup 组件对多个按钮进行分组,这是一种按钮的逻辑分组,没有任何UI效果,其主要目的是用一个信号槽同时监控多个按钮对象的状态。

信号函数如下:

参数中表示当前触发按钮对象本身,表示当前触发按钮的编号。

5、QLineEdit 单行文本输入框


QLineEdit用于输入一个单行文本,常用属性如下:

常用的信号函数如下:

6、ComboBox 组合框

双击组合框可以进行编辑


ComBox用于选择一个选项,功能类似于QRadioButton。
常用属性如下:

常用信号如下:

7、若干与数字相关的组件

以下组件都是数字相关。
这些组件有一些共同的属性和函数。

常用信号

cpp 复制代码
// value属性值发生改变时发射的信号
// 参数为当前的value值
void	valueChanged(int value)[signal]
相关推荐
吴声子夜歌9 分钟前
Guava——反射
java·开发语言·guava
lingran__15 分钟前
Git 完全指南(三):远程仓库与标签管理
开发语言·git·gitee·ssh·团队协作·远程仓库·分布式版本控制
for_ever_love__17 分钟前
python爬虫: 数据解析
开发语言·爬虫·python·xpath
学习星球25 分钟前
AI 一句话生成 3D 游戏世界:腾讯 HY-World 2.0 开源深度解析与本地实战
开发语言·人工智能·游戏·3d·ai·课程设计·ai编程
名字还没想好☜27 分钟前
Go 用 -race 抓数据竞争:一个偶发崩溃的排查、原理与修复
开发语言·后端·golang·go
励志不掉头发的内向程序员28 分钟前
LibreCAD 2D架构】从鼠标点击到屏幕像素:LibreCAD绘图架构全链路解析之鼠标事件与RS_ActionDrawLine
c++·qt·学习·架构·计算机外设
旖旎夜光32 分钟前
LeetCode 525:连续数组(前缀和) —— 题解
数据结构·c++·算法·leetcode·前缀和
fpcc37 分钟前
c++编程实践—如何理解生命周期
c++
小灰灰搞电子39 分钟前
Rust std::vec::Vec<T>动态数组:所有相关 API 全面介绍
开发语言·rust
学习星球41 分钟前
CodeWhale 深度剖析:从 DeepSeek-TUI 到 40.9K Star 的 Rust 终端编程 Agent
开发语言·后端·rust