【Qt】了解和HelloWorld

news2024/12/27 0:45:29

目录

0.用户交互界面风格

Windows下GUI开发方案?

1.Qt简介

1.1 版本Qt5.

1.2搭建Qt开发环境

需要安装3个工具

安装过程

熟悉QtSDK重要工具

2.使用Qt Creator创建项目

2.1代码解释

2.2helloworld

1.图形化方式

2.代码方式


0.用户交互界面风格

1.TUI:命令行界面/终端界面

2.GUI:图形化界面

Windows下GUI开发方案?

1.Windows API:windows系统提供原生API

2.MFC 、VC6.0:为图形化界面开发 提供面向对象的方式、拖拽组件简单开发。

3.QT

以上都是基于C/C++的GUI开发技术。

微软开发新的编程语言C#(C sharp)

4.Windows Forms:为C#(.net)设计的GUI开发技术。

5.WPF、UWP:对Windows Form的升级,支持更高版本Windows系统、跨平台,支持多种 Windows 设备(PC、手机、Xbox 等)。

6.Electron:基于HTML的网页,打包成一个Windows上运行的程序。

1.Qt简介

QT是一个跨平台的C++图形化界面应用程序开发框架。常应用于PC端桌面应用开发。

特点:面向对象,易于拓展,提供基于组件的开发模式,可以通过简单的拖拽和组合来实现复杂的应用程序,同时也可以使用C++语言进行高级开发。

优势:

1.跨平台,支持Windows、Linux、Mac系统、嵌入式系统。

2.一定程度简化内存回收机制(半自动的垃圾回收机制、尽可能不影响程序的运行效率)

3.可以进行嵌入式开发

1.1 版本Qt5.

1.2搭建Qt开发环境

需要安装3个工具

1.c++编译器(gcc、g++、cl.exe)

2.Qt SDK

SDK:软件开发工具包

win版本的Qt SDK已经内置C++编译器为mingw,实际上就是win版本的gcc/g++。

想使用VS内置的cl.exe编译器,需要配置额外的东西。

3.Qt集成开发环境(IDE)

1)Qt官方提供的Qt Creator:简单易上手,不需额外配置

2)Vistual Studio:功能更强,但需要额外配置、安装Qt插件、可能需要重新编译一遍QtSADK。

3)Eclipse

安装过程

1.下载QtSDK

选择组件:

2.添加环境变量:

熟悉QtSDK重要工具

C:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin

1.Qt说明文档:自带的官方英文文档

2.Qt设计师:拖拽组件方式实现界面设计的工具,会集成到qtcreator。

3.Qt语言家:界面语言支持切换。允许创建语言配置文件,提前将界面上需要的各种语言配置到文件中,可以起到一键切换语言的效果。

C:\Qt\Qt5.14.2\Tools\QtCreator\bin

4.Qt集成开发环境

2.使用Qt Creator创建项目

1.创建项目

2.选择模板:App应用程序-》Qt Widgets App:GUI程序

3.选择项目保存路径

4.选择项目构建工具-》qmake

Qt写的程序涉及“元编程”技术,通过代码生成代码。

Qt框架会在编译阶段,调用一系列的生成工具,基于用户代码,生成一些列新的C++代码。

qmake:qt专属构建工具

camke:经常用的,并非qt专属

5.

base class:项目自动生成代码包含一个类,选择自动生成的类的父类。

选项:

QMainWindow:完整的应用程序窗口(包含菜单栏、工具栏、状态栏...)

QWidget:表示一个控件

Qdialog:表示一个对话框

自动生的类MainWindow继承自QMainWindow。

勾选generate form ,使用QtDesigner以图像化方式快速生成界面。

6.选择翻译文件:暂时不关注,和linguist有关

7.编译器选择

8.

目录:.pro工程文件,Headers 头文件目录,Sources 源文件目录,Forms UI界面文件目录。

绿色三角编译运行。

2.1代码解释

main.cpp

widget.h

whidget.cpp

widget.ui

xml格式,xml标签含义由程序员定义,ui文件本质是一个xml文件。

通过xml文件描述界面,QtCreator会调用相关工具,依据xml文件生成代码。


双击widget.ui,进入QtDesigner。

.pro

qt项目工程文件,qmake工具构建项目的依据。类似Makefile文件。规定如何编译、清除。

qmake和.pro文件起到的作用和makefile是类似的。

中间文件

.h,.cpp,.ui,pro都是源代码,qt项目编译的过程中,还会生成一些中间文件。

编译运行程序后,项目目录的同级目录会新增一个build-XXX目录,包含编译过程中生成的临时文件。

编译过程中,使用到makefile是qmake自动生成的。

ui_widget.h是依据.ui文件生成的.h文件。

是.cpp文件引入的头文件。

内容:

 是.h文件声明的Ui::widget类型的具体实现。

2.2helloworld

方式

1.图形化方式,创建控件,显示字符串

2.代码方式,创建控件,显示字符串

1.图形化方式

使用label控件。

ui文件下,自动增加标签。

2.代码方式

#include "widget.h"
#include "ui_widget.h"
#include <QLabel>//使用lable需包含的头文件

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //在堆空间创建label对象,也可以在栈上
    //建议new,原因是给label对象指定一个父对象,对象树机制
    QLabel* label=new QLabel(this);

    label->setText("Hello World");//设置控件中显示的文本
}

Widget::~Widget()
{
    delete ui;
}

Qstring类型,和c++的string类型无关。

Qstring、Qvector、Qlist、QMap,都是Qt自己实现的容器类。因为Qt时期c++标准还未成型。

所以现在开发Qt程序,可以使用Qt的容器,也可以用语言标准库的容器。

但Qt原生接口,使用的都是Qt容器。所以经常会使用到,且std::string 和 Qstring可以方便的转换。

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

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

相关文章

原点安全再次入选信通院 2024 大数据“星河”案例

近日&#xff0c;中国信息通信研究院和中国通信标准化协会大数据技术标准推进委员会&#xff08;CCSA TC601&#xff09;共同组织开展的 2024 大数据“星河&#xff08;Galaxy&#xff09;”案例征集活动结果正式公布。由工银瑞信基金管理有限公司、北京原点数安科技有限公司联…

【MySQL初阶】--- 数据类型

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; MySQL &#x1f3e0; 数据类型分类 MySQL是一套整体的对外数据存取方案,既然要存取数据,而数据有不同的类型,因此MySQL也存在不同的数据类型,有不同的用…

使用VsCode编译调试Neo4j源码

文章目录 使用VsCode编译调试Neo4j源码1 简介2 步骤1 下载源码2 依赖3 构建Neo4j4 运行5 安装VsCode扩展6 **调试** 使用VsCode编译调试Neo4j源码 1 简介 Neo4j作为领先的图数据库&#xff0c;在存储、查询上都非常值得分析学习。通过调试、日志等方法跟踪代码工作流有助于理…

从零开始构建美颜SDK:直播美颜插件的开发实践指南

很多人好奇的一个问题&#xff0c;直播APP中主播们的美颜功能是如何实现的&#xff0c;今天&#xff0c;我们将以构建一款美颜SDK为主线&#xff0c;从技术架构、功能设计到开发实践&#xff0c;为读者提供一个全面的指导。 一、美颜SDK的核心技术 要构建一款优秀的美颜SDK&a…

计算机网络习题( 第3章 物理层 第4章 数据链路层 )

第3章 物理层 一、单选题 1、下列选项中&#xff0c;不属于物理层接口规范定义范畴的是&#xff08; &#xff09;。 A、 接口形状 B、 引脚功能 C、 传输媒体 D、 信号电平 正确答案&#xff1a; C 2、在物理层接口特性中&#xff0c;用于描述完成每种功能的事件发…

云手机群控能用来做什么?

随着云手机的发展&#xff0c;云手机群控技术逐渐从小众的游戏多开工具&#xff0c;发展为涵盖多个领域的智能操作平台。不论是手游搬砖、短视频运营&#xff0c;还是账号养成等场景&#xff0c;云手机群控都展现出了强大的应用潜力。本文将为大家详细解析云手机群控的应用场景…

深度学习实验十七 优化算法比较

目录 一、优化算法的实验设定 1.1 2D可视化实验&#xff08;被优化函数为&#xff09; 1.2 简单拟合实验 二、学习率调整 2.1 AdaGrad算法 2.2 RMSprop算法 三、梯度修正估计 3.1 动量法 3.2 Adam算法 四、被优化函数变为的2D可视化 五、不同优化器的3D可视化对比 …

汽车IVI中控开发入门及进阶(43):NanoVG

NanoVG:基于OpenGL的轻量级抗锯齿2D矢量绘图库 NanoVG是一个跨平台、基于OpenGL的矢量图形渲染库。它非常轻量级,用C语言实现,代码不到5000行,非常精简地实现了一套HTML5 Canvas API,做为一个实用而有趣的工具集,用来构建可伸缩的用户界面和可视化效果。NanoVG-Library为…

【生信圆桌x教程系列】如何安装 seurat V4版本R包

生物信息分析,上云更省心; 欢迎访问 www.tebteb.cc 了解 【生信云】 一.介绍 Seurat 是一个广泛使用的 R 包&#xff0c;专门用于单细胞基因表达数据的分析与可视化。它主要被生物信息学和生物统计学领域的研究者用来处理、分析和理解单细胞 RNA 测序&#xff08;scRNA-seq&am…

阿里云技术公开课直播预告:基于阿里云 Elasticsearch 构建 AI 搜索和可观测 Chatbot

在当今数据驱动的商业环境中&#xff0c;企业面临着前所未有的挑战与机遇。如何高效搜索、分析和观测数据&#xff0c;已成为企业成功的关键。Elasticsearch 企业版作为 Elastic Stack 的商业发行版&#xff0c;提供了一整套高效的搜索、分析和观测解决方案。 为此&#xff0c…

android 登录界面编写

1、登录页面实现内容 1.实现使用两个EditText输入框输入用户名和密码。 2.使用CheckBox控件记住密码功能。 3.登录时候&#xff0c;验证用户名和密码是否为空。 4.当前CheckBox控件记住密码勾上时&#xff0c;使用SharedPreferences存储用户名和密码。 5.登录时候使用Prog…

多目标应用(一):多目标麋鹿优化算法(MOEHO)求解10个工程应用,提供完整MATLAB代码

一、麋鹿优化算法 麋鹿优化算法&#xff08;Elephant Herding Optimization&#xff0c;EHO&#xff09;是2024年提出的一种启发式优化算法&#xff0c;该算法的灵感来源于麋鹿群的繁殖过程&#xff0c;包括发情期和产犊期。在发情期&#xff0c;麋鹿群根据公麋鹿之间的争斗分…

设计模式——装饰模式

文章目录 1.定义2. 结构组成3. 组合模式结构4. 示例代码5. 模式优势6. 应用场景 1.定义 装饰模式就像是给你的对象穿上不同的 “时尚服装”&#xff0c;在程序运行时&#xff0c;你可以随意地给对象搭配各种 “服装” 来增加新的功能&#xff0c;而且完全不用对对象本身的 “身…

python+reportlab创建PDF文件

目录 字体导入 画布写入 创建画布对象 写入文本内容 写入图片内容 新增页 画线 表格 保存 模板写入 创建模板对象 段落及样式 表格及样式 画框 图片 页眉页脚 添加图形 构建pdf文件 reportlab库支持创建包含文本、图像、图形和表格的复杂PDF文档。 安装&…

<数据集>芝麻作物和杂草识别数据集<目标检测>

数据集下载链接 &#xff1c;数据集&#xff1e;芝麻作物和杂草识别数据集&#xff1c;目标检测&#xff1e;https://download.csdn.net/download/qq_53332949/90181548数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;1300张 标注数量(xml文件个数)&#xff1a;130…

Python爬虫:速卖通aliexpress商品详情获取指南

在数字化时代&#xff0c;数据已成为企业竞争的关键资源。对于电商行业而言&#xff0c;获取竞争对手的商品信息是洞察市场动态、优化自身产品策略的重要手段。速卖通&#xff08;AliExpress&#xff09;作为全球知名的跨境电商平台&#xff0c;其商品信息的获取自然成为了许多…

【绿色碳中和】全国各省各地级市绿色金融数据(1990-2022年)

数据介绍&#xff1a;绿色金融指数采用熵值法进行测算&#xff0c;综合评价体系如下&#xff1a; 绿色金融指标体系 二级指标 三级指标 指标说明 绿色信贷 高能耗行业利息支出占比 六大高能耗行业利息支出/工业总利息 A股上市公司环保企业新增银行贷款占比 …

React引入Echart水球图

在搭建React项目时候&#xff0c;遇到了Echart官方文档中没有的水球图&#xff0c;此时该如何配置并将它显示到项目中呢&#xff1f; 目录 一、拓展网站 二、安装 三、React中引入 1、在components文件夹下新建一个组件 2、在组件中引入 3、使用水波球组件 一、拓展网站 …

Vue使用Tinymce 编辑器

目录 一、下载并重新组织tinymce结构二、使用三、遇到的坑 一、下载并重新组织tinymce结构 下载 npm install tinymce^7 or yarn add tinymce^7重构目录 在node_moudles里找到tinymce文件夹&#xff0c;把里面文件拷贝一份放到public下&#xff0c;如下&#xff1a; -- pub…

STM32-笔记10-手写延时函数(SysTick)

1、什么是SysTick Systick&#xff0c;即滴答定时器&#xff0c;是内核中的一个特殊定时器&#xff0c;用于提供系统级的定时服务。该定时器是一个24位的倒计数定时器‌。它从设定的初值&#xff08;即重载值&#xff09;开始计数&#xff0c;每经过一个系统时钟周期&#xff0…