目录
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可以方便的转换。