QT Creator工具介绍及使用

一、QT的基本概念

        QT主要用于图形化界面的开发, QT是基于C++编写的一套界面相关的类库,如进程线程库,网络编程的库,数据库操作的库,文件操作的库等。

        如何使用这个类库:类库实例化对象(构造函数) --> 学习类库中方法(函数)的使用 --> 后台逻辑的实现。

        QT是一个跨平台的GUI图形化界面开发工具。

QT的使用场合:

         汽车仪表盘 打印机 医疗器械 自动化的大型设备。

QT的优点:

         1.跨平台,具有软为完备的图形开发库,你所能想到的的图形的实现基本都有,比window的MFC的库更强大。

        2.接口的封装性好,易上手,学习QT框架对学习计算机图形框架有很重要的参考意义。

        3.QT内部基本上有一套自己的简易好用的内存回收机制,对提高C++水平有帮助。

        4.有很好的社区环境,市场份额在缓慢上升。

        5.轻量级的开发环境,可以做嵌入式开发。

二、QT工具介绍

        Assistant:QT类库的帮助手册的工具。

        Designer :用来设计图形化界面 对应的界面文件为***.ui (ui文件中的内容是一种标记性的语言) ​

        uic.exe:将***.ui文件转换为标准的C++的代码 ui_***.h

         moc.exe:元对象编辑器工具,将QT中非标准的信号和槽,转换为标准的C++的代码

        rcc.exe:资源管理器,将QT资源文件(图片,音频文件,视频文件),转换为标准的C++代码 ​         qmake:工程管理的工具 QT工程文件的后缀为***.pro工程文件, qmake工具可以根据***.pro文件,生成Makefile文件, 通过Makefile文件编译C++的代码。

        QTcreater:QT集成开发环境工具(IDE) 将上边的所有的工具都集成到一起了。

三、QT工程介绍 

3.1 工程管理文件

#工程引导文件,工程管理文件
QT       += core gui
#需要加入的类库   core核心库  gui图形界面类库greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#超过4版本后要自动加widgets类库,前面的版本中,widgets被合并在core类库中CONFIG += c++11
#支持C++11以后的版本# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0#源文件
SOURCES += \main.cpp \           #包含主程序mainwindow.cpp       #包含源文件
#头文件
HEADERS += \mainwindow.h
#图形化界面文件
FORMS += \mainwindow.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

3.2  头文件

 

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
//防止文件重复包含
#include<QPushButton>
#include <QMainWindow>
//引入头文件QMainWindowQT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }    //声明命名空间
QT_END_NAMESPACE//自定义的界面类,公共继承自QMainWindow
class MainWindow : public QMainWindow
{Q_OBJECT           //处理信号与槽的元组件public:MainWindow(QWidget *parent = nullptr);        //构造函数的声明~MainWindow();                                //析构函数的声明private:QPushButton *btn1;            //自定义的组件Ui::MainWindow *ui;   //使用ui界面类定义出来的指针,用于找到ui界面中拖拽出来的组件
};
#endif // MAINWINDOW_H

3.3 源文件

 

#include "mainwindow.h"             //包含自定义的头文件
#include "ui_mainwindow.h"          //包含ui界面生成的头文件MainWindow::MainWindow(QWidget *parent)          //构造函数的定义: QMainWindow(parent)          //调用父类有参构造, ui(new Ui::MainWindow)       //给ui指针申请空间
{ui->setupUi(this);        //调用ui界面函数,给拖拽的组件申请空间并设置相关数据
}//析构函数的定义
MainWindow::~MainWindow()
{delete ui;
}

3.4 主测试文件 

 

#include "mainwindow.h"      //包含自定义的头文件#include <QApplication>      //包含应用程序的头文件
#include<iostream>
using namespace std;//主函数
int main(int argc, char *argv[])
{QApplication a(argc, argv);     //使用应用程序实例化对象,调用有参构造MainWindow w;         //使用自定义类实例化一个对象,调用无参构造w.show();              //调用show方法cout<<"hello world"<<endl;return a.exec();          //轮询等待 等待用户操作、等待事件处理、等待相关信号发射
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端:横向滚动条,拖动进行左右滚动(含隐藏滚动条)

效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, i…

universal robot 机械臂 官方基本教程

https://academy.universal-robots.cn/modules/e-Series-core-track/Chinese/module3/story_html5.html?courseId2166&languageChinese 教程1 控制箱内部 包含&#xff1a; 主机板&#xff0c;SD卡&#xff0c;和安全控制板 安全控制板负责所有控制信息&#xff0c;包括…

Android JNI系列详解之CMake编译工具的使用

一、CMake工具的介绍 如图所示&#xff0c;CMake工具的主要作用是&#xff0c;将C/C编写的native源文件编译打包生成库文件&#xff08;包含动态库或者静态库文件&#xff09;&#xff0c;集成到Android中使用。 二、CMake编译工具的使用 使用主要是配置两个文件&#xff1a;CM…

nodepad++ 插件的安装

nodepad 插件的安装 一、插件安装二、安装插件&#xff1a;Json Viewer nodepad 有 插件管理功能&#xff0c;其中有格式化json以及可以将json作为树查看的插件&#xff1a; Json Viewer 一、插件安装 1、首先下载最新的notepad 64位【https://notepad-plus.en.softonic.com…

echart 图表添加数据分析功能,(右上控制选择)

echart 图表添加数据分析功能,可区域选择数据,右上按钮,控制echart行为 chart.on(globalcursortaken, onGlobalcursortaken); //绑定事件chart.off("brushSelected");//解绑事件处理函数chart.on(brushSelected, renderBrushed);getBarDev2(eIndex, eTimeArr, eSerie…

最新ChatGPT程序源码+AI系统+详细图文部署教程/支持GPT4.0/支持Midjourney绘画/Prompt知识库

一、AI系统 如何搭建部署人工智能源码、AI创作系统、ChatGPT系统呢&#xff1f;小编这里写一个详细图文教程吧&#xff01;SparkAi使用Nestjs和Vue3框架技术&#xff0c;持续集成AI能力到AIGC系统&#xff01; 1.1 程序核心功能 程序已支持ChatGPT3.5/GPT-4提问、AI绘画、Mi…

流媒体弱网优化之路(BBR应用)——GCC与BBR的算法思想分析

流媒体弱网优化之路(WebRTC)——GCC与BBR的算法思想分析 —— 我正在的github给大家开发一个用于做实验的项目 —— github.com/qw225967/Bifrost目标&#xff1a;可以让大家熟悉各类Qos能力、带宽估计能力&#xff0c;提供每个环节关键参数调节接口并实现一个json全配置&…

Blender 3D建模要点

3d模型可以为场景的仿真模拟带来真实感,它还有助于更轻松地识别场景中的所有内容。 例如,如果场景中的所有对象都是简单的形状,如立方体和圆形,则很难在仿真中区分对象。 1,碰撞形状与视觉形状 像立方体和球体这样的简单形状,通常被称为“基本体”,通常用作碰撞块。 与…

912.排序数组

目录 一、题目 二、代码 一、题目 912. 排序数组 - 力扣&#xff08;LeetCode&#xff09; 二、代码 class Solution { public:void _MergeSort(vector<int>&data,vector<int>&tmp,int begin,int end){if(begin>end)return;//结束条件int mid (beg…

windows安装Scala

Windows安装Scala 下载地址&#xff1a;https://downloads.lightbend.com/scala/2.11.11/scala-2.11.11.zip 解压完成之后 配置环境变量

接口幂等性设计的最佳实现

一、什么是幂等 二、为什么需要幂等 三、接口超时了&#xff0c;到底如何处理&#xff1f; 四、如何设计幂等 全局的唯一性ID 幂等设计的基本流程 五、实现幂等的8种方案 selectinsert主键/唯一索引冲突 直接insert 主键/唯一索引冲突 状态机幂等 抽取防重表 token令牌 悲观锁…

【数据结构】二叉数的存储与基本操作的实现

文章目录 &#x1f340;二叉树的存储&#x1f333;二叉树的基本操作&#x1f431;‍&#x1f464;二叉树的创建&#x1f431;‍&#x1f453;二叉树的遍历&#x1f3a1;前中后序遍历&#x1f4cc;前序遍历&#x1f4cc;中序遍历&#x1f4cc;后续遍历 &#x1f6eb;层序遍历&am…