Qt UI文件操作与信号槽机制笔记
一、UI文件操作
1. 控件命名规范
- 建议:为控件命名时应使用通俗易懂、功能明确的名称,便于后期代码编写与维护。
- 例如:
- 按钮命名为
btnLogin
:btn
代表按钮,Login
代表功能。 - 文本框命名为
editUsername
:edit
表示编辑框,Username
表示它存储用户名。
- 按钮命名为
2. 使用 Qt Designer 创建 UI 文件
Qt Designer 是 Qt 提供的一个图形化界面设计工具,可以快速拖拽控件,设计界面。
- 打开 Qt Designer: 在 Qt Creator 中,选择“文件” -> “新建文件或项目” -> “Qt Designer Form”,然后选择合适的模板(如 QWidget)。
- 设计界面: 在 Qt Designer 中,拖动控件(如按钮、文本框、标签等)到设计区域。
- 设置控件属性: 每个控件都有一些属性,可以通过右侧的属性编辑器修改控件的外观和功能。例如:
- 设置按钮的文字为“登录”;
- 设置文本框的占位符为“请输入用户名”;
- 设置标签的图片等。
- 保存 UI 文件: 保存为
.ui
文件,通常将其命名为widget.ui
或mainwindow.ui
。
二、信号与槽机制
1. 基本概念
- **信号(Signal):**控件在特定操作下发出的事件通知,例如按钮点击、文本变动等。
- **槽(Slot):**响应信号的函数,可绑定到控件信号上,用于处理相应逻辑。
2. 关联信号与槽的方法
方法一:自动关联(推荐初学者使用)
- 在Qt Designer中,右键点击控件 → 转到槽(Go to Slot);
- 选择要响应的信号,Qt会自动在工程中添加对应的槽函数声明;
- **注意:**槽函数必须声明在类的
private slots:
或public slots:
区域内。
方法二:手动关联(适合自定义处理逻辑)
使用 connect()
函数显式连接信号与槽。格式如下:
`connect(sender, SIGNAL(signalName()), receiver, SLOT(slotName()));`
例如:
`connect(ui->btnLogin, SIGNAL(clicked()), this, SLOT(handleLogin()));`
sender
:发出信号的对象(如按钮)signalName()
:信号名称receiver
:接收信号的对象slotName()
:响应函数名称
三、给QT添加图片
1、生成图片文件
2、引用图片
label中改变表格样式,选择添加图片
图标下载网址:iconfont-阿里巴巴矢量图标库
四、界面布局
Qt中常用的布局方式:(布局不影响代码)
布局类型 | 特点 | 常用控件 |
---|---|---|
水平布局 | 元素横向排列 | QHBoxLayout |
垂直布局 | 元素纵向排列 | QVBoxLayout |
栅格布局 | 类似表格,控件按行列分布 | QGridLayout |
表单布局 | 左侧标签,右侧输入框 | QFormLayout (如设置界面) |