Qt-初始Qt

news2024/11/13 9:34:38

1. Qt背景介绍

1.1 什么是Qt

Qt是⼀个跨平台的C++图形⽤⼾界⾯应⽤程序框架。它为应⽤程序开发者提供了建⽴艺术级图形界⾯所需的所有功能。它是完全⾯向对象的,很容易扩展。Qt为开发者提供了⼀种基于组件的开发模式,开发者可以通过简单的拖拽和组合来实现复杂的应⽤程序,同时也可以使⽤C++语⾔进⾏⾼级开发。
在这里插入图片描述

**图形⽤⼾界⾯:**指采⽤图形⽅式显⽰的计算机操作⽤⼾界⾯,是计算机与其使⽤者之间的对话接,是计算机系统的重要组成部分。如下分别是:Android⼿机图形⽤⼾界⾯和IOS⼿机图形⽤⼾界⾯。

1.2 Qt的优点

  • 跨平台,⼏乎⽀持所有的平台;
  • 接⼝简单,容易上⼿,学习QT框架对学习其他框架有参考意义。
  • ⼀定程度上简化了内存回收机制;
  • 开发效率⾼,能够快速的构建应⽤程序。
  • 有很好的社区氛围,市场份额在缓慢上升。
  • 可以进⾏嵌⼊式开发。

1.6 Qt的应⽤场景

  • 桌⾯应⽤程序
    Qt能够创建各种类型的桌⾯应⽤程序,包括⽂件管理器、媒体播放器、绘图程序等。Qt应⽤程序⽀持
    多种操作系统,可以运⾏在Windows、Linux、macOS等桌⾯操作系统上。
  • 移动应⽤程序
    Qt⽀持Android和IOS移动操作系统,为应⽤程序提供了强⼤的跨平台能⼒。可以使⽤Qt构建各种移动应⽤程序,例如社交应⽤、游戏、娱乐等。
  • 嵌⼊式系统
    Qt在嵌⼊式领域应⽤⾮常⼴泛,它可以构建⾯向各种设备的图形应⽤程序,在机顶盒、⻋载娱乐系统、安防监控设备等领域具有⼴泛的应⽤。

2. 认识Qt Creator界面代码

主要界面:
在这里插入图片描述

3. Qt 的 Hello World 程序

3.1 使用"标签"输出

3.1.1 纯代码方式实现

这里是引用
运行结果:
在这里插入图片描述

3.1.2 可视化操作实现

双击:"widget.ui"⽂件
在这里插入图片描述
进行拖拽
在这里插入图片描述

运行结果:
在这里插入图片描述

3.2 使用"按钮"实现

3.2.1 纯代码方式实现

在这里插入图片描述

实现效果如下图:
在这里插入图片描述
点击按钮之后:
在这里插入图片描述

3.2.2 可视化操作实现

第一步:先点击设计
之后进行下面动作
在这里插入图片描述
第二步:编写代码
在这里插入图片描述
在这里插入图片描述
运行结果:
在这里插入图片描述
按下按钮之后:
在这里插入图片描述

4. 对象树

使用对象树,把这些内容组织起来,最主要的目的, 就是为了能够在合适的时机,把这些对象统一进行释放。通过这个树形结构,就把界面上要显示的这些控件对象都组织起来了
这里是引用
这里的树上的这些对象,统一销毁是最好不过的.如果某个对象提前销毁,此时就会导致对应的控件就在界面上不存在了。

小结

  1. 认识 QLabel 类,能够在界面上显示字符串.
    通过 setText 来设置的. 参数 QString (Qt 中把 C++ 里的很多容器类,进行了重新封装.历史原因)
  2. 内存泄露/文件资源泄露
  3. 对象树Qt 中通过对象树,来统一的释放界面的控件对象
    Qt 还是推荐使用 new 的方式在堆上创建对象,通过对象树, 统一释放对象创建对象的时候,在构造函数中, 指定父对象(此时才会挂到对象树上)如果你的对象没有挂到对象树上,就必须要记得手动释放!!
  4. 通过继承自 Qt 内置的类,就可以达到对现有控件进行功能扩展效果
    Qt 内置的 QLabel, 没法看到销毁过程的, 为了看清楚,就创建类 MyLabel, 继承自 QLabel
    重写 析构函数.在析构函数中,加上日志,直观的观察到对象释放的过程了
  5. 乱码问题 和 字符集~ MySQL(很多地方都涉及到)
    目前,表示汉字字符集,主要是两种方式.
    1.GBK.(中国大陆) 使用 ,2 个字节表示一个汉字.Windows 简体中文版,默认的字符集就是 GBK.
    2.UTF-8 / utf8变长编码.表示一个符号, 使用的字节数有变化,2-4但是在 utf8 中,一个汉字,一般是 3 个字节.Linux 默认就是 utf8,qt中解决问题输出用QDebug中的qDebug()方法函数解决iostream中的cout问题。qDebug()方法可以自动换行。
  6. 如何在 Qt 中打印日志,作为调试信息,
    使用 cout 固然可以, 但是并不是上策 (字符编码处理的不好,也不方便统一进行关闭)(具体这个宏叫啥名字,太长了,俺也记不住)Qt 中推荐使用 qDebug() 完成日志的打印.

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

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

相关文章

003.精读《MapReduce: Simplified Data Processing on Large Clusters》

文章目录 1. 引言:2. 精读2.1 背景2.2 模型应用2.3 基本原理2.4 其他 3. 总结 1. 引言: 在本期的精读会中,我们将深入探讨一篇具有里程碑意义的论文——《MapReduce: Simplified Data Processing on Large Clusters》。这篇论文不仅奠定了大…

【AI音频处理】:重塑声音世界的无限可能

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 引言一、语音识别:人机交互的新篇章二、语音合成:让机器“说话”的艺术三、音乐创作与推荐:AI赋予音乐新生命四、声音效果处理:让声音更加完美五、AI在…

浅谈维度建模、数据分析模型,何为数据仓库,与数据库的区别

往期推荐 大数据HBase图文简介-CSDN博客 数仓分层ODS、DWD、DWM、DWS、DIM、DM、ADS-CSDN博客 数仓常见名词解析和名词之间的关系-CSDN博客 数仓架构:离线数仓、实时数仓Lambda和Kappa、湖仓一体数据湖-CSDN博客 0. 前言 1991年,数据仓库之父 比尔恩门 著…

【C++ | 设计模式】代理模式的详解与实现

1. 概念 代理模式(Proxy Pattern)是一种结构型设计模式,用于控制对对象的访问。它通过引入代理对象,间接地操作目标对象,从而实现对目标对象的控制。代理模式的核心思想是通过代理对象来控制对目标对象的访问。代理对…

坐标系的那些事儿

哈喽,大家好!地理坐标系、投影坐标系等知识是地图学、GIS和地图发布、应用等绕不开的话题,今天我们一起聊一聊坐标系的那些事儿! 1.地理坐标系 为了确定地面点在地球椭球体表面位置而定义的空间参考系,主要用经纬度来…

软件设计师笔记-多媒体基础知识

媒体 感觉媒体(使人产生感觉的媒体)表示媒体(传输感觉媒体的中介媒体)表现媒体(进行信息输入和输出的媒体)存储媒体(用于存储表示媒体的物理介质)传输媒体(传输表示媒体…

酿酒师的匠心独运:白酒酿造的不同工艺

在华夏大地的深处,一群酿酒师用他们的匠心独运,将大自然的馈赠转化为琼浆玉液,那便是豪迈白酒(HOMANLISM)。每一滴酒液都承载着酿酒师们的智慧和汗水,每一瓶豪迈白酒(HOMANLISM)都是…

Disjoint-set data structure--并查集

Disjoint-set data structure 不相交集, 通常称作并查集的一种数据结构。 应用范围:处理不相交集合的合并查询问题,它在处理这两种的时间复杂度在实际应用上往往认为是 O ( 1 ) O(1) O(1),稍后本篇会略加说明。接受两种操作:判断两元素是否…

【进程间通信】管道应用场景---简易进程池

#include<iostream> #include<vector> #include<string> #include<cstring> #include<cstdlib> #include<unistd.h> #include<sys/stat.h> #include<sys/wait.h>//把5个子进程要管理起来&#xff0c;要先描述再组织 const int…

SPI驱动学习二(驱动框架)

目录 一、回顾平台总线设备驱动模型二、SPI设备驱动1. 数据结构1.1 SPI控制器数据结构1.2 SPI设备数据结构1.3 SPI设备驱动 2. SPI驱动框架2.1 SPI控制器驱动程序2.2 SPI设备驱动程序 三、SPI设备树处理过程1. SPI Master2. SPI Device3. 设备树示例4. 设备树实例4.1 使用GPIO模…

leetcode 899. Orderly Queue

原题链接 You are given a string s and an integer k. You can choose one of the first k letters of s and append it at the end of the string. Return the lexicographically smallest string you could have after applying the mentioned step any number of moves. …

Java集合类之Collection

文章目录 1 准备部分1.1 数据结构1.1.1 数组1.1.2 链表 1.2 集合是什么 2 Collection2.1 特点2.2 常用API2.3 遍历Collection的方法2.3.1 toArray方法2.2.2 iterator方法2.3.3 foreach2.3.4 总结 3 List 接口3.1 内容提要3.2 特点3.3 List的API3.3.1 listIterator方法3.3.4 sub…

【RabbitMQ应用篇】常见应用问题

1. 消息幂等性保障 1.1 幂等性介绍 幂等性&#xff1a;这个概念在数学和计算机领域中相当常见&#xff0c;表示可以被应用多次但是不会改变初始应用结果的性质。 应用程序的幂等性&#xff1a;指的是在一个应用系统中&#xff0c;重复调用多次请求&#xff08;相同参数&#…

【Python机器学习】神经网络的组成

目录 感知机 数字感知机 认识偏置 Python版神经元 “课堂时间” 有趣的逻辑学习问题 下一步 代价函数 反向传播算法 求导 误差曲面 不同类型的误差曲面 多种梯度下降算法 Keras&#xff1a;用Python实现神经网络 展望 归一化&#xff1a;格式化输入 神经网络对…

C语言 面向对象编程

注意事项 在使用面向对象编程的时候&#xff0c;我们得问自己&#xff1a;任务中有什么对象&#xff0c;对象应该怎么使用 项目中文档体系 我们可以规划一下任务得文档&#xff0c;可以为每一个对象的类单独编写源码&#xff0c;并发布对应的头文件作为接口&#xff0c;主控…

Android CCodec Codec2 (六)C2InterfaceHelper

通过前面几篇文章的学习&#xff0c;我们知道了Codec2参数结构&#xff0c;以及如何定义一个Codec2参数。接下来的几篇文章我们将简单了解上层是如何请求组件支持的参数、如何配置参数&#xff0c;以及参数是如何反射给上层的。本篇文章我们将了解接口参数实例化。 1、C2Interf…

Linux零基础到精通(二)-vmware虚拟机使用教程及Centos7操作系统安装

目录 前言Linux 操作系统运用领域vmware虚拟机安装与使用电脑硬件环境要求vmware虚拟机软件安装创建一个虚拟机配置vmware的虚拟化网络 通过vmware虚拟机安装操作系统下载Centos7系统镜像安装Centos7操作系统配置网络和主机名称信息配置系统分区软件包选择设置用户密码进入Cent…

入门Java编程的知识点—>静态方法(day11)

重点掌握final关键字特点&#xff1f;final的语法使用?重点掌握静态变量是什么&#xff1f;静态变量的语法与使用?了解方法区内存图执行过程?重点掌握静态方法是什么&#xff1f;静态方法的语法特点与使用?重点掌握常量语法如何定义与使用? final(最终) final可以用于修…

IT运维问题深度剖析与一体化解决方案探索

在当今信息化高速发展的时代&#xff0c;IT运维作为保障企业业务连续性和稳定性的关键环节&#xff0c;其重要性日益凸显。然而&#xff0c;随着企业规模的扩大和业务的复杂化&#xff0c;IT运维面临着诸多挑战和问题。本文旨在深度剖析当前IT运维中的紧迫性问题与需求&#xf…

C++学习, 指针的指针

指针的指针&#xff1a; 是一种间接寻址的形式&#xff0c;指针的指针就是将指针的地址存放在另一个指针里面。一般&#xff0c;指针包含一个变量的地址&#xff0c;当定义一个指向指针的指针时&#xff0c;第一个指针包含了第二个指针的地址&#xff0c;第二个指针指向实际值…