Qt环境搭建+简单程序实现

Qt是什么

Qt是一个跨平台的C++图形用户界面应用程序框架。

框架的本质就是一群大佬发明的让菜鸡写出来的代码也也比较规范

也就是限制程序员的自由,让程序员写出来的代码规范。

库和框架有相似性。

库是被程序员调用的,(程序员是主体)

框架是占主体的,由程序员填充一些框架。
在这里插入图片描述

Qt是跨平台的,支持Linux,windwos,Mac,嵌入式系统

Linux中主要是KDE桌面是Qt构建的。

Qt版本

现在主要使用的Qt5版本,大多数企业使用的也是这个。

商业许可:你想使用Qt开发一个程序,就可以向公司买商业许可证

开源许可:开发一个程序,不必花钱,直接白嫖、

就像收费的Linux版本 Redhat,为什么花钱买,为的就是买一份服务。

Qt的优点

跨平台

接口简单,容易上手,学习qt有助于学习其他框架

一定程度上简化了内存回收机制,半自动的垃圾回收机制

开发效率高,能够快速构建应用程序

可以进行嵌入式开发

社区氛围也很好,可以提供较多的资料

Qt的成功案例

WPS Office办公软件

Linux的KDE桌面

Google earth桌面应用

QT开发环境的搭建

分三部分

1.安装C++的编译器,比如gcc,编译器不等于IDE

2.Qt SDK,SDK是软件开发工具包,比如windows版本QtSDK里已经内置了C++编译器,也可以用vs2022,但是需要配置,容易出错。

3.需要有一个Qt的集成开发环境

(1).Qt官方提供的Qt Creator,最容易入门上手的方式,适合新手,但是有些bug,

(2).Visual studio 功能更强,配置的更多,更容易出错,需要给VS安装Qt插件,需要把Qt SDK vs的编译器重新编译,现在也方便一些

qt项目创建

qmake 和cmake

构建系统,通过qt写的程序,通过代码来生成代码,用到一系列元编程技术

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用qt creator 创建项目,会自动生成一些代码来,此处生成的代码就是一个类

在这里插入图片描述

此处就是要选择这个自动生成的父类是谁

QMainWindows,完整的应用窗口,包含菜单栏工具栏,状态栏

Qwidget表示一个控件,比如输入框,按钮,下拉框,复选按钮

Qdialog表示一个会话框

Qt中内置的类都是以前置Q开头的

mainwindow.ui非常关键

可以用图形化界面的方式快速生成界面

对main函数分析

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

return exec() 表示让程序执行起来。

这个exec和Linux中的exec没用任何关系,只是名字一样。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

XML格式

XML是程序员自己约定的

Qt中使用xml文件就是去描述程序的界面是啥样的

进一步的qmake会调用相关的工具,依据这个xml文件,生成一些c++代码,从而把完整的界面构建出来

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

qt.pro文件

类似于Linux学习的makefile

makefile其实是一个非常古老的技术了

qmake搭配.pro搭配使用就能达到makefile类似的作用

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

编译生成的中间文件

ui_widget.h是widget.ui 和 xml生成的.h文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

helloword实现

1.纯代码

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

qt为了让开发更爽,自己开发了一些基础类,比如Qstring,QVector

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

很多年之后,上述等内容已经打磨很好了,形成了C++标准。

很显然,这些已经引入了的Qt自己包装好的这些容器类,也不可能删了,你可以使用标准库的容器,也可以使用标准库的。

所以后续代码会经常见到QString,很少见到std::String。

所以入乡随俗吧

2.图形化界面

年之后,上述等内容已经打磨很好了,形成了C++标准。

很显然,这些已经引入了的Qt自己包装好的这些容器类,也不可能删了,你可以使用标准库的容器,也可以使用标准库的。

所以后续代码会经常见到QString,很少见到std::String。

所以入乡随俗吧

2.图形化界面

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-02-07 05:14:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-07 05:14:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-07 05:14:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-07 05:14:01       18 阅读

热门阅读

  1. vue2编写一个自定义指令,一键绑定事件委托

    2024-02-07 05:14:01       35 阅读
  2. web读取前端txt并解析

    2024-02-07 05:14:01       32 阅读
  3. 比值计算 - 荣耀机试真题题解 ( 第1题 100 分)

    2024-02-07 05:14:01       23 阅读
  4. 天翼云CentOS7多IPsk5服务器一键搭建脚本

    2024-02-07 05:14:01       28 阅读
  5. 【Iceberg学习一】什么是Iceberg?

    2024-02-07 05:14:01       29 阅读
  6. linux驱动开发之常见面试问题

    2024-02-07 05:14:01       30 阅读
  7. 选择良好的条件比较语句

    2024-02-07 05:14:01       31 阅读
  8. Redis简单总结

    2024-02-07 05:14:01       33 阅读
  9. leetcode633 平方数之和

    2024-02-07 05:14:01       34 阅读
  10. Vue3 中的各种ref

    2024-02-07 05:14:01       36 阅读
  11. 网络版本计算器

    2024-02-07 05:14:01       24 阅读
  12. 网络安全面试题收集

    2024-02-07 05:14:01       36 阅读
  13. UI自动化中元素无法定位问题解决方法

    2024-02-07 05:14:01       32 阅读