QT Creator工具介绍及使用

news2024/12/23 19:53:19

一、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>
//引入头文件QMainWindow


QT_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.coloradmin.cn/o/950523.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django静态文件媒体文件文件上传

文章目录 一、静态文件和媒体文件1.在django中使用静态文件实践2.在django中使用媒体文件 二、文件上传单文件上传实践多文件上传 一、静态文件和媒体文件 媒体文件: 用户上传的文件&#xff0c;叫做media 静态文件:存放在服务器的css,js,image,font等 叫做static1.在django中…

【Flutter】使用Android Studio 创建第一个flutter应用。

前言 首先下载好 flutter sdk和 Android Studio。 FlutterSDK下载 Android Studio官网 配置 我的是 windows。 where.exe flutter dart查看flutter安装环境。 如果没有&#xff0c;自己在环境变量的path添加下flutter安装路径。 在将 Path 变量更新后&#xff0c;打开一个…

QTday1(第一个QT界面、常用类与组件)

一、Xmind整理&#xff1a; Assistant帮助文档的使用&#xff1a; 设计师界面的介绍&#xff1a; 各文件之间调用方式&#xff1a; 二、上课笔记整理&#xff1a; 1.第一个QT界面 ①创建自定义类时需要指定父类 ②第一个界面的相关操作 #include "mainwindow.h"…

比Python快3.5万倍的Mojo融资7亿,LLVM之父:不会威胁到Python,该恐惧的应该是C++

近日&#xff0c;Modular AI 公司宣布成功融资 1 亿美元&#xff08;约 7.29 亿人民币&#xff09;&#xff0c;据称这是继去年 3000 万美元融资之后的第二轮融资。 Modular AI 称他们未来的愿景是通过 AI 引擎和 Mojo 为全球开发者提供 AI 基础设施。 Modular AI 是 Chris La…

maven本地安装jar包install-file,解决没有pom的问题

背景&#xff1a; 公司因为权限问题&#xff0c;没有所有的代码&#xff0c;内部maven还在搭建&#xff0c;所以需要拿到同事的jar包&#xff0c;本地install&#xff1a; mvn install:install-file -DgroupIdcom..framework -DartifactIdcloud-api -Dversion1.0.0-SNAPSHOT …

Blender 3D建模要点

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

js优雅的统计字符串字符出现次数

题目如下 统计一串字符串中每个字符出现的频率 示例字符串 let str asdfasqwerqwrdfafafasdfopasdfopckpasdfassfd小白写法 let str asdfasqwerqwrdfafafasdfopasdfopckpasdfassfdlet result {}; for (let i 0; i < str.length; i) {if (result[str[i]]) {result[str[…

【算法训练-字符串】一 最长无重复子串

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是最长无重复子串或最长无重复子数组&#xff0c;这类题目出现频率还是很高的。 最长无重复子串【MID】 先来看字符串数据结构的题目 题干 解题思…

链接minio出现S3 API Requests must be made to API port. 错误记录

网上找了个链接的demo默认端口是9000 然后我登录了MinMo服务器&#xff0c;登录端口确实也是9000 不过我是通过1panle安装的 信息如下 表面了API连接要用&#xff1a;9001端口才行 修改后重启 ok

入职一家公司只会功能测试,如何进一步提升自己?

一定要帮助想上进却又迷茫的人。最近也听到一些做功能测试的同学的交流&#xff0c;天天做手工测试&#xff0c;想提升一下自己又不知道如何提升&#xff1f;其实还是在于这些同学对自己没有一个清晰的定位&#xff0c;没有明确的目标。 做为功能测试人员来讲&#xff0c;从发…

Vscode漂亮配色方案

有需要的私自&#xff0c;付费

记一次对链接、COMMON块、多重符号定义的理解

问题引入 首先是两个测试程序 // foo.c long long int a;// bar.c #include <stdio.h>int a; int main(){a 1;long long int len sizeof(a);printf("%lld\n", len);return 0; }将两个程序链接到一起 问题&#xff1a;len等于几&#xff1f; 初步分析 环境…

【数据结构与算法 三】常见数据结构与算法组合应用方式

一般的数据结构和对应的 很抱歉,作为一个文本AI模型,我无法直接绘制图表,但我可以为您列出常见的算法和数据结构分类,并为每个分类提供简要说明。您可以根据这些信息自行绘制图表。 算法分类: 搜索算法:用于在数据集中查找特定元素的算法,如线性搜索、二分搜索等。 排…

【SpringBoot】最基础的项目架构(SpringBoot+Mybatis-plus+lombok+knife4j+hutool)

汝之观览&#xff0c;吾之幸也&#xff01; 从本文开始讲下项目中用到的一些框架和技术&#xff0c;最基本的框架使用的是SpringBoot(2.5.10)Mybatis-plus(3.5.3.2)lombok(1.18.28)knife4j(3.0.3)hutool(5.8.21),可以做到代码自动生成&#xff0c;满足最基本的增删查改。 一、新…

从零开始探索C语言(三)----运算符和判断语句

文章目录 1. C 运算符1.1 算术运算符1.2 关系运算符1.3 逻辑运算符1.4 位运算符1.5 赋值运算符1.6 杂项运算符 ↦ sizeof & 三元1.7 C 中的运算符优先级 2. C 判断2.1 if 语句2.2 if...else 语句2.3 if...else if...else 语句2.4 ? : 运算符(三元运算符) 1. C 运算符 运算…

商业模式案例:七星拼团—微三云门门

企业战略角度&#xff1a; 七星拼团模式是一种以互联网思维为引流方式的商业战略&#xff0c;通过终端用户自主裂变新用户&#xff0c;为推荐人带来拉新奖励&#xff0c;从而构建一个共赢的商业生态系统。 终端用户角度&#xff1a; 七星拼团模式为终端用户提供了零门槛、零…

如何轻松搭建 Web 自动化测试框架(Python+selenium)

在程序员的世界中&#xff0c;一切重复性的工作&#xff0c;都应该通过程序自动执行。「自动化测试」就是一个最好的例子。 随着互联网应用开发周期越来越短&#xff0c;迭代速度越来越快&#xff0c;只会点点点&#xff0c;不懂开发的手工测试&#xff0c;已经无法满足如今的…

【Go 基础篇】Go语言结构体详解:打开自定义类型的大门

嗨&#xff0c;Go语言学习者们&#xff01;在编程的世界里&#xff0c;数据是核心&#xff0c;而结构体&#xff08;Struct&#xff09;是一种能够帮助我们更有组织地存储和操作数据的重要工具。在本篇博客中&#xff0c;我们将深入探讨Go语言中结构体的概念、定义、初始化、嵌…

【Flutter】Flutter 使用 fluttertoast 实现显示 Toast 消息

【Flutter】Flutter 使用 fluttertoast 实现显示 Toast 消息 文章目录 一、前言二、安装和基础使用三、不同平台的支持情况四、如何自定义 Toast五、在实际业务中的应用六、完整的业务代码示例&#xff08;基于 Web 端&#xff09;七、总结 一、前言 在这篇文章中&#xff0c;…