当前位置: 首页 > web >正文

第六章 QT基础:1、入门操作:文件操作与信号槽机制笔记

Qt UI文件操作与信号槽机制笔记

一、UI文件操作

1. 控件命名规范
  • 建议:为控件命名时应使用通俗易懂、功能明确的名称,便于后期代码编写与维护。
  • 例如:
    • 按钮命名为 btnLoginbtn 代表按钮,Login 代表功能。
    • 文本框命名为 editUsernameedit 表示编辑框,Username 表示它存储用户名。
2. 使用 Qt Designer 创建 UI 文件

Qt Designer 是 Qt 提供的一个图形化界面设计工具,可以快速拖拽控件,设计界面。

  1. 打开 Qt Designer: 在 Qt Creator 中,选择“文件” -> “新建文件或项目” -> “Qt Designer Form”,然后选择合适的模板(如 QWidget)。
  2. 设计界面: 在 Qt Designer 中,拖动控件(如按钮、文本框、标签等)到设计区域。
  3. 设置控件属性: 每个控件都有一些属性,可以通过右侧的属性编辑器修改控件的外观和功能。例如:
    • 设置按钮的文字为“登录”;
    • 设置文本框的占位符为“请输入用户名”;
    • 设置标签的图片等。
  4. 保存 UI 文件: 保存为 .ui 文件,通常将其命名为 widget.uimainwindow.ui
    在这里插入图片描述

二、信号与槽机制

1. 基本概念
  • **信号(Signal):**控件在特定操作下发出的事件通知,例如按钮点击、文本变动等。
  • **槽(Slot):**响应信号的函数,可绑定到控件信号上,用于处理相应逻辑。
    ![[Pasted image 20250414165345.png]]
2. 关联信号与槽的方法
方法一:自动关联(推荐初学者使用)
  1. 在Qt Designer中,右键点击控件 → 转到槽(Go to Slot)
  2. 选择要响应的信号,Qt会自动在工程中添加对应的槽函数声明;
  3. **注意:**槽函数必须声明在类的 private slots:public slots: 区域内。
    ![[Pasted image 20250414170111.png]]
![[Pasted image 20250414170223.png]]
方法二:手动关联(适合自定义处理逻辑)

使用 connect() 函数显式连接信号与槽。格式如下:

`connect(sender, SIGNAL(signalName()), receiver, SLOT(slotName()));`

例如:

`connect(ui->btnLogin, SIGNAL(clicked()), this, SLOT(handleLogin()));`
  • sender:发出信号的对象(如按钮)
  • signalName():信号名称
  • receiver:接收信号的对象
  • slotName():响应函数名称
    ![[Pasted image 20250414171108.png]]
三、给QT添加图片

![[Pasted image 20250414171328.png]]

1、生成图片文件
![[Pasted image 20250414171429.png]]
![[Pasted image 20250414171846.png]]
![[Pasted image 20250414171908.png]]
在这里插入图片描述

2、引用图片
label中改变表格样式,选择添加图片
![[Pasted image 20250414172319.png]]
![[Pasted image 20250414172408.png]]图标

图标下载网址:iconfont-阿里巴巴矢量图标库

四、界面布局

Qt中常用的布局方式:(布局不影响代码)

布局类型特点常用控件
水平布局元素横向排列QHBoxLayout
垂直布局元素纵向排列QVBoxLayout
栅格布局类似表格,控件按行列分布QGridLayout
表单布局左侧标签,右侧输入框QFormLayout(如设置界面)
http://www.xdnf.cn/news/1213.html

相关文章:

  • StarRocks 异常 Table creation timed out.
  • 小白训练日记——2025/4/22
  • 虚拟机的网络配置
  • 美团外卖霸王餐接口该如何对接?
  • C++STL(七) :unordered_set、unordered_map的介绍及使用
  • transformer-位置编码
  • Lawrence Krauss 的“从无中诞生的宇宙”(Universe from Nothing)
  • MCP Host、MCP Client、MCP Server全流程实战
  • 耀百岁中医养生与上海隽生中医药研究中心达成战略合作——共筑中医养生科研创新高地
  • 乐视系列玩机---乐视1 x600系列线刷救砖以及刷写第三方twrp 卡刷第三方固件步骤解析
  • RK3588 ubuntu20禁用自带的TF卡挂载,并设置udev自动挂载
  • 学习思路分享---从0开始搭建基本web服务器
  • (一)初始Linux---------Linux的背景
  • spring中使用netty-socketio部署到服务器(SSL、nginx转发)
  • 【FPGA开发】Vivado开发中的LUTRAM占用LUT资源吗
  • 入门-C编程基础部分:17、typedef
  • 安卓投屏软件QtScrcpy
  • Node.js简介(nvm使用)
  • 删除不了jar包-maven clean package失败
  • 深入探索Spark-Streaming:从基础到核心编程
  • TCP/IP协议新手友好详解
  • 【以太网安全】——防护高级特性配置总结
  • 数字化转型“变形记”:中钧科技经营帮如何让企业长出“智慧骨骼”
  • 分部积分选取u、v的核心是什么?
  • 多态以及多态底层的实现原理
  • mysql日常巡检
  • JSP服务器端表单验证
  • Conceptrol: Concept Control of Zero-shot Personalized Image Generation(个性化图像生成)
  • 多骨干、多融合:RT-DETR 如何解锁主干网络新姿势?
  • qt.tlsbackend.ossl: Failed to load libssl/libcrypto.