【Qt】了解和HelloWorld

news/2024/12/25 10:16:56 标签: qt, 开发语言

目录

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.niftyadmin.cn/n/5798969.html

相关文章

ASP.NET |日常开发中常见问题归纳讲解

ASP.NET &#xff5c;日常开发中常见问题归纳讲解 前言一、性能问题1.1 数据库访问性能1.2 视图状态&#xff08;在ASP.NET Web Forms 中&#xff09; 二、安全问题2.1 SQL 注入2.2 跨站脚本攻击&#xff08;XSS&#xff09; 三、状态管理问题3.1 会话状态&#xff08;Session …

Web 代理、爬行器和爬虫

&#xff08;一&#xff09;Web 在线网页代理服务器的使用方法 1. 什么是 Web 在线网页代理服务器 Web 在线网页代理服务器就像是网络穿越仪一般&#xff0c;它是一种具有转发功能的应用程序&#xff0c;能够帮助用户在特定网络环境下访问被封锁的网页。用户在某些网络环境中…

嵌入式设备常用性能和内存调试指令

文章目录 嵌入式设备常用性能和内存调试指令内存问题分析性能测试android设备通过NDK 使用SimplePerf 抓取火焰图嵌入式linux抓取特定进程的perf火焰图 杂记 嵌入式设备常用性能和内存调试指令 内存问题分析 安装valgrind&#xff0c;按照如下指令执行应用程序&#xff1a; …

设计模式的主要分类是什么?请简要介绍每个分类的特点。

大家好&#xff0c;我是锋哥。今天分享关于【设计模式的主要分类是什么&#xff1f;请简要介绍每个分类的特点。】面试题。希望对大家有帮助&#xff1b; 设计模式的主要分类是什么&#xff1f;请简要介绍每个分类的特点。 1000道 互联网大厂Java工程师 精选面试题-Java资源分…

Excel 列名称转换问题 Swift 解答

文章目录 摘要描述题解答案Swift 实现代码&#xff1a;题解代码分析示例测试及结果 时间复杂度空间复杂度总结未来展望参考资料 摘要 本篇文章将通过 Swift 编程语言解答一个常见的算法问题&#xff1a;给定一个整数 columnNumber&#xff0c;将其转换为 Excel 表中的列名称。…

Flutter/Dart:使用日志模块Logger Easier

Flutter笔记 Flutter/Dart&#xff1a;使用日志模块Logger Easier Logger Easier 是一个为 Dart 和 Flutter 应用程序量身定制的现代化日志管理解决方案。它提供了一个高度灵活、功能丰富的日志记录系统&#xff0c;旨在简化开发者的日志管理工作&#xff0c;同时提供一定的定制…

slam学习笔记7---状态量求导相关数学公式

前言&#xff1a;本来打算只是归纳一下数学求导相关公式&#xff0c;后面也写了旋转求导相关内容&#xff0c;哈哈。感觉有点发散把握不住呀。水平有限&#xff0c;欢迎评论区点出。 一、基本初等函数求导公式 ( C ) ′ 0 , C (C)0,C (C)′0,C为常数 ( x μ ) ′ μ x μ −…

STM32第十一课:STM32-基于标准库的42步进电机的简单IO控制(附电机教程,看到即赚到)

一&#xff1a;步进电机简介 步进电机又称为脉冲电机&#xff0c;简而言之&#xff0c;就是一步一步前进的电机。基于最基本的电磁铁原理,它是一种可以自由回转的电磁铁,其动作原理是依靠气隙磁导的变化来产生电磁转矩&#xff0c;步进电机的角位移量与输入的脉冲个数严格成正…