Qt_两种创建组件的方式-通过图形化-通过代码

2024-08-27 09:44

本文主要是介绍Qt_两种创建组件的方式-通过图形化-通过代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、通过图形化的方式,在界面上创建一个控件,显示hello world
    • 1.打开UI设计界⾯
    • 2.拖拽控件⾄ ui 界⾯窗⼝并修改内容
    • 3.构建并运行
  • 二、通过代码的方式,通过编写代码,在界面上创建控件,显示hello world
    • 在Widget构造函数里编写
    • 运行结果
    • 问题


一、通过图形化的方式,在界面上创建一个控件,显示hello world

1.打开UI设计界⾯

双击 widget.ui ⽂件:
在这里插入图片描述
UI设计界面:
在这里插入图片描述

2.拖拽控件⾄ ui 界⾯窗⼝并修改内容

在这里插入图片描述

3.构建并运行

按下运行键:
在这里插入图片描述

在这里插入图片描述

二、通过代码的方式,通过编写代码,在界面上创建控件,显示hello world

一般通过代码来构造界面的时候,通常会把构造界面的代码放到Widget/mainWindow的构造函数中
在这里插入图片描述

在Widget构造函数里编写

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//代码创建组件://创建对象的两种方式:堆上创建,栈上创建,推荐堆上创建//栈上创建对象//QLabel label(this);//堆上创建对象QLabel* label = new QLabel(this);//此处的this是给当前这个label对象,指定一个“父对象”label->setText("hello world");//设置内容
}

运行结果

在这里插入图片描述

问题

  • 上面的代码,在堆上创建对象,没有释放会不会造成内存泄漏
    不会,因为 QLabel* label = new QLabel(this); 这里的this,将组件放入对象树中,会在合适的时候释放。

  • 为什么要用对象树
    使用对象树,把界面要显示的这些控件对象都组织其起来,最主要的目的,就是为了能够在合适的时机把这些对象统一进行释放

这篇关于Qt_两种创建组件的方式-通过图形化-通过代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1111316

相关文章

Window Server2016 AD域的创建的方法步骤

《WindowServer2016AD域的创建的方法步骤》本文主要介绍了WindowServer2016AD域的创建的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、准备条件二、在ServerA服务器中常见AD域管理器:三、创建AD域,域地址为“test.ly”

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

Mybatis官方生成器的使用方式

《Mybatis官方生成器的使用方式》本文详细介绍了MyBatisGenerator(MBG)的使用方法,通过实际代码示例展示了如何配置Maven插件来自动化生成MyBatis项目所需的实体类、Map... 目录1. MyBATis Generator 简介2. MyBatis Generator 的功能3

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

Python数据处理之导入导出Excel数据方式

《Python数据处理之导入导出Excel数据方式》Python是Excel数据处理的绝佳工具,通过Pandas和Openpyxl等库可以实现数据的导入、导出和自动化处理,从基础的数据读取和清洗到复杂... 目录python导入导出Excel数据开启数据之旅:为什么Python是Excel数据处理的最佳拍档

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

基于Qt Qml实现时间轴组件

《基于QtQml实现时间轴组件》时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件,本文主要为大家详细介绍了如何使用Qml实现一个简单的时间轴组件,需要的可以参考下... 目录写在前面效果图组件概述实现细节1. 组件结构2. 属性定义3. 数据模型4. 事件项的添加和排序5. 事件项的渲染如何使用