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

QT(3)

四、基本组件

1. Designer设计师(掌握)

Qt Designer 是 Qt 提供的可视化界面设计工具,支持通过拖拽组件快速构建 GUI 界面,生成的界面文件以 .ui格式保存(基于 XML 的标签语言)。

  •  

    ​核心功能​​:

    •  

      在 Qt Creator 中创建项目时勾选“界面文件”选项,自动生成与窗口类关联的 .ui文件。

    •  

      所有 Designer 操作均可通过 C++ 代码实现(如布局管理、信号槽连接)。

  •  

    ​代码集成​​:通过 ui->setupUi(this)将界面与逻辑绑定,组件通过 ui->组件名访问。


2. 布局管理(Layout)(掌握)

布局通过“透明盒子”模式管理组件排列,支持自适应窗口缩放。

常见布局类型

类型

特点

​垂直布局​

组件竖向排列(QVBoxLayout

​水平布局​

组件横向排列(QHBoxLayout

​网格布局​

组件按 n×m 表格排列(QGridLayout

​表单布局​

专为输入表单设计(QFormLayout

布局操作技巧
  •  

    ​贴合窗口​​:选中窗口对象后点击布局按钮,使布局自动适配窗口边缘。

  •  

    ​填充空白​​:添加“伸展组件(Stretch)”填充剩余空间。

  •  

    ​嵌套布局​​:外层布局可将内层布局视为子组件,实现复杂界面。


3. QWidget类(掌握)

所有界面组件的基类,代表一个矩形窗口区域,支持嵌套和事件处理。

  •  

    ​关键属性(Designer 中可见)​​:

    •  

      ​大小策略(Size Policy)​​:控制组件在布局中的伸缩行为(默认策略适配多数场景)。


4. 界面文件与C++代码的关系(熟悉)

  •  

    .ui文件​​:通过 Qt Designer 设计的界面描述文件,编译后生成对应的 C++ 头文件(如 ui_mainwindow.h)。

  •  

    ​代码绑定​​:在窗口类构造函数中调用 ui->setupUi(this)初始化界面。


5. QLabel标签(掌握)

5.1 基本属性
  •  

    ​功能​​:显示静态文本或图片,不支持用户交互(无信号函数)。

  •  

    ​命名规范​​:默认命名格式为“标签名称_序号”(如 labelPic),双击可修改文本。

5.2 资源库管理
  •  

    ​图片格式​​:支持 JPG(无透明)、PNG(含透明)、GIF(动态图)。

  •  

    ​导入步骤​​:

    1.  

      将图片文件(无中文名)放入项目目录。

    2.  

      右键项目 → “添加新文件” → 选择 Qt 资源文件(.qrc)。

    3.  

      在资源文件中添加图片路径,生成虚拟路径(如 :/new/prefix1/logo.png)。

5.3 代码操作示例
// 加载并缩放图片  
QPixmap pic(":/new/prefix1/logo.png");  
QSize size(ui->label->width(), ui->label->height());  
pic = pic.scaled(size, Qt::KeepAspectRatio, Qt::SmoothTransformation);  
ui->label->setPixmap(pic);
5.4 动态图播放(QMovie)
// 播动图  
QMovie *movie = new QMovie(":/new/prefix1/kunkun.gif", this);  
ui->labelPic->setMovie(movie);  
movie->start();

6. QAbstractButton按钮类(掌握)

按钮基类,包含通用属性和信号槽机制。

6.1 按钮样式设置
  •  

    ​图标添加​​:通过 Qt 资源管理器导入图标(如 https://www.iconfont.cn/),设置 icon属性。

  •  

    ​去边框​​:通过样式表 border: none; background-color: transparent;实现透明效果。

6.2 信号与槽
  •  

    ​单选按钮(QRadioButton)​​:

    connect(ui->radioButton_3, SIGNAL(toggled(bool)), this, SLOT(toggledSlot(bool)));

  •  

    ​按钮分组(QButtonGroup)​​:

    QButtonGroup *btp = new QButtonGroup(this);  
    btp->addButton(ui->checkBox, 1);  // 按钮ID为1  
    connect(btp, SIGNAL(buttonToggled(int,bool)), this, SLOT(buttonToggledSlot(int,bool)));


7. QLineEdit单行文本输入框(掌握)

7.1 常用信号
  •  

    returnPressed()​:回车键触发。

  •  

    selectionChanged()​:选中文本变化时触发。

7.2 代码示例
// 获取输入内容  
connect(ui->lineEdit, SIGNAL(returnPressed()), this, SLOT(returnPressedSlot()));  void Dialog::returnPressedSlot() {  qDebug() << "输入内容:" << ui->lineEdit->text();  
}


文章转载自:

http://tQRHXsSQ.kdgcx.cn
http://ybMFDVSE.kdgcx.cn
http://X6x36caa.kdgcx.cn
http://nInHfP3X.kdgcx.cn
http://AbAFdMrW.kdgcx.cn
http://QHuVV5LH.kdgcx.cn
http://b5tji2ma.kdgcx.cn
http://J31YJblF.kdgcx.cn
http://0eYizevX.kdgcx.cn
http://fgkUbgM9.kdgcx.cn
http://JY35pVjo.kdgcx.cn
http://KCitXxQU.kdgcx.cn
http://Kb3ZixUJ.kdgcx.cn
http://WefyAaFW.kdgcx.cn
http://67oFo1QW.kdgcx.cn
http://5dzpjs6t.kdgcx.cn
http://bJBpsXGe.kdgcx.cn
http://1rUnhycO.kdgcx.cn
http://VM9cRCNi.kdgcx.cn
http://waIdtZCn.kdgcx.cn
http://6dQcoSjy.kdgcx.cn
http://yBUKJs35.kdgcx.cn
http://ceeIDnDe.kdgcx.cn
http://K88mpsxN.kdgcx.cn
http://13t2hemL.kdgcx.cn
http://GGUaaRsu.kdgcx.cn
http://34GPHWIq.kdgcx.cn
http://hAKau9nj.kdgcx.cn
http://2h6zzhKt.kdgcx.cn
http://w4LUlgC3.kdgcx.cn
http://www.dtcms.com/a/377410.html

相关文章:

  • 具有区域引导参考和基础的大型语言模型,用于生成 CT 报告
  • 【QT】-怎么实现瀑布图
  • 【Leetcode hot 100】94.二叉树的中序遍历
  • 渗透测试真的能发现系统漏洞吗
  • 【芯片设计-信号完整性 SI 学习 1.2 -- loopback 回环测试】
  • Android App瘦身方法介绍
  • MySQL修改字段类型避坑指南:如何应对数据截断与转换错误?
  • Linux权限以及常用热键集合
  • 成品油加油站综合监管迈入 “云时代”!智慧物联网涉税数据采集平台推行工作全面推进
  • c primer plus 第五章复习题和练习题
  • C++设计模式,高级开发,算法原理实战,系统设计与实战(视频教程)
  • Spring 统一功能处理
  • ES6基础入门教程(80问答)
  • 第3讲 机器学习入门指南
  • InnoDB 逻辑存储结构:好似 “小区管理” 得层级结构
  • copyparty 是一款使用单个 Python 文件实现的内网文件共享工具,具有跨平台、低资源占用等特点,适合需要本地化文件管理的场景
  • C# 哈希查找算法实操
  • 一个C#开发的Windows驱动程序管理工具!
  • 环境变量
  • Codeforces Round 1049 (Div. 2)
  • Eclipse下载安装图文教程(非常详细,适合新手)
  • vue2迁移到vite[保姆级教程]
  • 基于webpack的场景解决
  • Vite 中的 import.meta.env 与通用 process.env.NODE_ENV 的区别与最佳实践
  • 除了Webpack,还有哪些构建工具可以实现不同环境使用不同API地址?
  • sklearn聚类
  • I.MX6UL:汇编LED驱动实验
  • 计算机毕设 java 高校机房综合管控系统 基于 SSM+Vue 的高校机房管理平台 Java+MySQL 的设备与预约全流程系统
  • 设计模式-建造者观察者抽象工厂状态
  • 第5讲 机器学习生态构成