当前位置: 首页 > news >正文

《二》Qt Creator工具介绍与使用

一、关于界面

点击文件--->新建文件或项目会出现如下图:

我们选择第一个

 点击下一步下一步:

继续下一步直到结束:

 二,具体文件介绍

我们点击pro查看以下

QT       += core gui

第1行 表示使用qt的core和gui库,如果以后我们想用其他的库,可以往这里添加。

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

第3行 表示如果qt的版本大于4,则引入widgets库,因为qt4之前的版本widgets库是不需要引用的,qt4之后需要引用。

SOURCES += \main.cpp \mainwindow.cpp

18行主要是告诉编译器要编译的源文件

HEADERS += \mainwindow.h

22行告诉编译器要编译的头文件

FORMS += \mainwindow.ui

25行FORMS 描述了要用到哪些ui文件。

.pro文件的规则:

     1.注释

                从“#”开始,到这一行结束。

     2.模块引入

                QT += 模块名,表示当前项目引入Qt哪些模块。

                引入模块的意思就简单理解为引入C/C++头文件搜索路径,如果没引入对应模块就使用该头文件的话会报错说找不到该头文件。当然不必要的模块还是别引入,因为引入模块不仅仅是引入头文件搜索路径那么简单,还包括引入连接的库等一系列操作,会让程序变臃肿。

     3. 模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = app

                app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。

                lib - 建立一个库的makefile。

                vcapp - 建立一个应用程序的VisualStudio项目文件。

                vclib - 建立一个库的VisualStudio项目文件。

                subdirs -这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。

        4.配置信息

        CONFIG用来告诉qmake关于应用程序的配置信息。

               CONFIG += c++11 //使用c++11的特性(qt5.6以上版本默认使用C++11)

               在这里使用“+=”,是因为我们添加我们的配置选项到任何一个已经存在中。这样做比使用“=”那样替换已经指定的所有选项更安全。

三、 一个最简单的Qt应用程序

在main.h中

 

  1.Qt系统提供的类头文件没有.h后缀

  2.Qt一个类对应一个头文件,类名和头文件名一致

  3.QApplication应用程序类

         管理图形用户界面应用程序的控制流和主要设置。

         是Qt生命,一个程序要确保一直运行,就肯定至少得有一个循环,这就是Qt主消息循环,在其中完成来自窗口系统和其它资源的所有事件消息处理和调度。它也处理应用程序的初始化和结束,并且提供对话管理。

          对于任何一个使用Qt的图形用户界面应用程序,都正好存在一个QApplication 对象,不论这个应用程序在同一时刻有多少个窗口。

4. a.exec()

        程序进入消息循环,等待对用户输入进行响应。这里main()把控制权转交给Qt,Qt完成事件处理工作,当应用程序退出的时候exec()的值就会返回。在exec()中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。

类头文件 

 

 下面是一些常用的快捷键:

        运行  ctrl +R

        编译  ctrl +B

        帮助文档  F1 ,点击F1两次跳到帮助界面

        跳到符号定义 F2 或者ctrl + 鼠标点击

        注释 ctrl+/

        字体缩放  ctrl + 鼠标滚轮

        整行移动代码 ctrl + shift + ↑或↓

        自动对齐   ctrl + i

        同名之间的.h和.cpp文件跳转 F4

感谢观看!!!!

http://www.lryc.cn/news/339937.html

相关文章:

  • 20240415金融读报:市场信贷不能过于宽松声音碳领域新增文件
  • 2024年第十五届蓝桥杯研究生组题目总结(Java、Python、C++)
  • MindOpt APL向量化建模语法的介绍与应用(2)
  • 深入理解图形处理器(GPU):加速人工智能和大数据计算的引擎
  • 【Java探索之旅】数组使用 初探JVM内存布局
  • RabbitMQ消息模型之Simple消息模型
  • 设计模式系列:简单工厂模式
  • 解决 windows+Ubuntu 时间不同步问题
  • Learn SRP 01
  • NL2SQL进阶系列(4):ConvAI、DIN-SQL、C3-浙大、DAIL-SQL-阿里等16个业界开源应用实践详解[Text2SQL]
  • Python统计分析库之statsmodels使用详解
  • A Learning-Based Approach for IP Geolocation(2010年)
  • 高创新 | [24年新算法]NRBO-XGBoost回归+交叉验证基于牛顿拉夫逊优化算法-XGBoost多变量回归预测
  • Web APP设计:将多个相近的机器学习模型融合到一个Web APP中
  • 网络爬虫:定义、应用及法律道德考量
  • (三)ffmpeg 解码流程以及函数介绍
  • go work模块与go mod包管理是的注意事项
  • 华为OD-C卷-最长子字符串的长度(一)[100分]
  • 实战小项目 | ESP32-S3和ESP32-C3通过ESP-Mesh-Lite组网 温湿度传感器案例
  • SiLM5350系列带米勒钳位的单通道隔离驱动器 助力汽车与工业应用实现稳定与高效的解决方案
  • c#中怎么自动下载软件
  • Unity笔记之下拉刷新列表
  • 防火墙操作!
  • 代码随想录算法训练营第四十一天| 343. 整数拆分,96.不同的二叉搜索树
  • 【MATLAB源码-第53期】m代码基于粒子群算法(PSO)的三维路径规划,显示最优路径和适应度曲线。
  • el-table多行合并
  • Vue3 + Element-Plus 使用 Table 插槽时数据未及时更新
  • vue 2 怎么把2024-04-13T17:42:19转换成短日期格式
  • 网络IO模型以及实际应用
  • 一文详解MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM及其关系