Qt 创建控件的两种方式

news2025/2/5 17:42:09

目录

Qt 创建控件的两种方式

通过ui界面创建控件

通过代码方式创建控件


Qt 创建控件的两种方式

通过ui界面创建控件

这里当然我们是需要先有一个项目的,按照我们之前创建项目的步骤,我们可以先创建一个 Widget 的项目,但是 MainWindow 也是可以的,不过 MainWindow 是编写一整个界面的时候使用的,目前我们是不需要使用到的,所以我们可以先使用 Widge 的项目。

我们之间进入到 ui 界面,前面我们也说了在 ui 界面的左边的那一列,就是我们常用的控件,所以我们就可以直接将控件使用鼠标托拽的方式拖拽到 ui 界面上。

我们在 display 模块里面及那个 Label 拖拽到 ui 界面上,拖拽上去后,我们也可以使用鼠标移动这个控件的位置,同时也可以修改它的大小等参数,在这个 ui 界面的右侧,还是一个关于 ui 界面上的控件的属性,也可以通过直接点击对应的控件,然后修改其属性,这个详细的我们后面介绍,当前我们是认识到创建控件的两种方式。

当我们将 Label 拖到 ui 界面上之后,因为 Label 翻译过来就是一个标签,我们也可以修改其中的内容,然后我们将里面的内容修改为 Hello World 然后我们点击运行即可,运行就在最左边的一个绿色的开始按钮,也可以使用快捷键 Ctrl+r。

通过代码方式创建控件

既然上面我们通过 ui 界面创建 Hello World 的方法已经学会了,那么下面我们学习一下如何通过代码的方式创建这个,如果使用代码创建的话,那么就是不需要使用到 ui 界面的,所以我们就需要直接在代码里面编写对应的代码。

那么我们具体应该在哪个文件里面写呢?起始我们只需要在 Widget 的构造函数里面写即可,当 Widget 对象创建好后,也就有了相应的控件,然后当我们在代码里面写好创建对应的控件之后,我们也可以使用代码来修改控件里面的文字,当然也可以通过代码来修改 Label 中的文本信息了。

#include "QLabel"
​
​
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    
    // 1. 创建一个 Label
    QLabel* label = new QLabel(this);
    // 2. 修改 label 中的文本
    label->setText("Hello World");
}

我们先看一下我们编写好的代码,然后我们实际运行一下,我们在做解释。

我们看到确实有 Hello World ,那么我们下面解释一下代码: 创建 label 对象的时候,我们使用了 QLabel 这个类,而这个类是 Qt 中自带的,所以我们可以使用,但是我们是需要包这个类的头文件的,我们前面也说了,Qt 中的头文件和你使用的这个类的类名是一样的,所以我们只需要包含 QLabel 这个类即可。 我们在创建这个类的时候,使用的是 new 也就是在堆上创建,那么为什么不在栈上创建呢?实际上在栈上创建是显示不出来的,为什么呢?因为栈上创建的话,当构造函数结束之后,这个对象就析构了,所以当到了显示的时候,这个对象没有,那么也就当然显示不出来了,所以我们还是推荐在堆上创建对象。 在创建的时候,我们后面还给了一个参数,那么这个参数是什么意思呢?前面我们也说过,Qt 是一个半自动化释放对象的语言,并不像 java 一样是全自动化的,那么当我们创建一个对象的时候,我们就需要将这个对象加入到对象树上,这样这个对象就不需要我们最后关心释放的问题了。 我们没有对 new 出来的这个 label 进行释放没问题吗?我们在创建对象的时候,我们给了一个参数 this 指针,这个就是可以将该对象加到对象树上,加入到对象树之后,那么该当不适用该对象的时候,那么就会自动释放,就不需要我们来关心释放的问题了。

上面就是我们提到了两种创建控件的方式,并且我们还提到了对象树,那么我们后面在详细介绍对象树。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1598900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【代码随想录】day46:单词拆分,多重背包

单词拆分 1.把单词看成物品,字符串看成背包—>完全背包问题 2.排列问题:因为物品之间的组成顺序很重要,所以需要考虑顺序 。因为"apple" “apple” “pen” 或者 “pen” “apple” “apple” 是不可以的 d[j]:字符串长度为…

LD3320语音模块开发以及未来拿到其他模块的开发方式

当我们拿到一块模块进行开发的时候,一定要拿到配套的使用手册,不然在短时间内根本下不了手 一、使用source Insight来阅读源码 1.建立文件夹 2. 在source Insight放入该文件 3.添加源码 4.解决Source Insight乱码的问题 5.让各个代码模块之间有关联 二、…

数据结构面试题(常见概念题)

什么是 AVL 树? AVL 树是平衡二叉查找树,增加和删除节点后通过树形旋转重新达到平衡。右旋是以某个节点为中心,将它沉入当前右子节点的位置,而让当前的左子节点作为新树的根节点,也称为顺时针旋转。同理左旋是以某个节…

SpringBoot通过UUid实现文件上传接口及问题解决

在controller中,添加对应的方法体: PostMapping("/upload")ResponseBodypublic ApiRestResponse upload(HttpServletRequest httpServletRequest, RequestParam("file")MultipartFile file) throws IOException {String fileName f…

国外新闻媒体稿件宣发:海外pr发稿干货秘籍-大舍传媒

一、了解目标市场和受众 发布新闻稿件的首要步骤是了解你的目标市场和受众。在撰写新闻稿件之前,你需要研究你的目标市场,了解他们的需求、兴趣和习惯。你还需要了解你的受众,包括他们的年龄、性别、职业、地理位置和媒体使用习惯等。这些信…

基于springboot实现在线考试系统设计【项目源码+论文说明】

基于springboot实现在线考试管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了基于JavaWeb技术的在线考试系统设计与实现的开发全过程。通过分析基于Java Web技术的在线考试系统设计与实现管理的不…

数据结构复习指导之绪论(算法的概念以及效率的度量)

文章目录 绪论: 2.算法和算法评价 知识总览 2.1算法的基本概念 知识点回顾与重要考点 2.2算法效率的度量 知识总览 1.时间复杂度 2.空间复杂度 知识点回顾与重要考点 归纳总结 绪论: 2.算法和算法评价 知识总览 2.1算法的基本概念 算法( Al…

Spring Boot 整合 Redis 集群详解

前言: 项目中需要使用 Redis 做缓存数据库,本文分享一下 Spring Boot 项目集成 Redis 的过程以及踩过的坑。 Spring Boot 集成 Redis 可以分为三大步,如下: 在 proerties 或者 yml 文件中添加 redis 和 lettuce 配置。项目 pom…

[已解决]问题:root.users.hdfs is not a leaf queue

问题:root.users.hdfs is not a leaf queue CDH集群报错: Exception in thread “main” org.apache.hadoop.yarn.exceptions.YarnException: Failed to submit application_1713149630679_0005 to YARN : root.users.hdfs is not a leaf queue 思路 …

mybatis-puls 条件分析插件

一,能做什么 我们在平时的开发中,会遇到一些慢sql. MP也提供了性能分析插件,如果超过这个时间就停止运行! 二,如何实现 2.1引入条件分析插件 //性能分析BeanProfile({"dev","test"}) //设置dev 和 test环境开启public Performanc…

RAG学习笔记系列(三)

RAG 中的 Agent Agent Agent 是使用 LLM 进行推理,为其提供一系列工具完成一个任务。 工具包括一系列定义好的函数,比如:代码函数、外部API、其他的 Agent。 OpenAI 助理 OpenAI 助理基本上实现了很多工具供 LLM 选择,比如&a…

一文读懂BTC生态新贵Giants Planet,将L2与现实世界整合

前言 获新加坡主权基金鼎力扶持,Giants Planet将引爆Web3新风向。 随着年前BTC现货 ETF 的获批,加密世界涌入大量的资金,BTC价格也成功突破新高。与之相比,传统金融的弊端日益凸显,且大部分资产涨幅都低于BTC&#xf…

最新IntelliJ IDEA 2024.1 安装和快速配置教程

IntelliJ IDEA 2024.1 最新版如何快速入门体验?IntelliJ IDEA 2024.1 安装和配置教程 图文解说版 文章目录 IntelliJ IDEA 2024.1 最新版如何快速入门体验?IntelliJ IDEA 2024.1 安装和配置教程 图文解说版前言 第一步: IntelliJ IDEA 2024.1安装教程第 0 步&…

Linux入门(Linux介绍,安装,常用命令,防火墙的设置,注意事项)

目录 一、Linux介绍 1. Linux简介 1 什么是Linux 2 Linux的应用 3 为什么要学习Linux 2. Linux分类 1 按照市场需求分 2 按照原生程度分 3.小结 二、Linux安装 1. vmware介绍 2. 安装VMWare 3. 安装CentOS 4. 登录查看ip 5. 远程连接工具 1 使用FinalShell连接L…

一次网卡驱动BUG故障的排错历程

前言 在日常运维中,总会遇到一些棘手的故障或问题,尤其面临多系统融合的兼容性或一些融合节点可能存在未知bug等方面,排错难度都会增加。 本文将从一次小事件为入口进行延伸,将宿主机esxi基础系统的多融合节点故障的排错历程展开…

[linux]进程控制——进程终止

一、main函数的返回值 我们在编写C语言的程序时,通常会这样写: int main() {return 0; } 那么我们为什么要返回(return)0 呢? 其实,main函数也是一个函数,它也会被调用,所以谁调…

go限流、计数器固定窗口算法/计数器滑动窗口算法

go限流、计数器固定窗口算法/计数器滑动窗口算法 一、问题 问题1:后端接口只能支撑每10秒1w个请求,要怎么来保护它呢? 问题2:发短信的接口,不超过100次/时,1000次/24小时,要怎么实现&#xff…

RN向上向下滑动组件封装(带有渐变色)

这段组件代码逻辑是出事有一个View和下面的块,下面的块也就是红色区域可以按住向上向下滑动,当滑动到屏幕最上面则停止滑动,再向上滑动的过程中,上方的View的背景色也会有个渐变效果,大概逻辑就是这样 代码如下 import React, {useEffect, useRef, useState} from react; impo…

这样的看板你喜欢吗?

看板这个功能很多项目管理软件都有这个功能。基本上都是分类列表,大致分为 已完成、开发中、规划中 分类也是可以自己添加的 每个分类就是一个列表。 但是我个人觉得相对于文字来说人对图像更敏感,项目管理中一个重要的因数时间在上面看板并没与体现出来…

HBase2.x学习笔记

文章目录 一、HBase 简介1、HBase 定义1.1 概述1.2 HBase 与 Hadoop 的关系1.3 RDBMS 与 HBase 的对比1.4 HBase 特征简要 2、HBase 数据模型2.1 HBase 逻辑结构2.2 HBase 物理存储结构2.3 HBase的表数据模型 3、HBase 基本架构3.1 Master3.2 Region Server3.3 Zookeeper3.4 HD…