QT的工程文件认识

这篇具有很好参考价值的文章主要介绍了QT的工程文件认识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、QT介绍

2、QT的特点

3、QT模块

3.1基本模块

3.2扩展模块

4、QT工程创建

1.选择应用的窗体格式

2.设置工程的名称与路径

3.设置类名

4.选择编译器

5、QT 工程解析

xxx.pro 工程配置

xxx.h 头文件

main.cpp 主函数

xxx.cpp 文件

6、纯手工创建一个QT 工程

1.创建一个纯C++ 工程

2.在xxx.pro 添加模块

3.设计界面代码

7、UI文件设计界面


1、QT介绍

百度百科的解释:

Qt [1] 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。

简单理解:QT 就是使用C++ 封装的一个图形界面库。

QT是通用的C++开发界面框架( C++ 图形用户界面 应用程序开发框架。)它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。

历史

1991年由QT公司开发跨平台C++图形用户界面应用程序开发框架。

2008年,Qt Company科技被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具。 2012年,Qt被Digia收购

版本 QT4---2009 QT5---2013 --主流版本 QT6---2021

特点 跨平台、面向对象、丰富的API

应用

咪咕音乐:咪咕音乐是中国移动倾力打造的正版音乐播放器

WPS Office:金山软件公司推出的办公软件

极品飞车:EA公司出品的著名赛车类游戏

2、QT的特点

QT的特点就是跨平台性很强,在QT中设计的界面可以放入不同的平台下运行如下图

QT的工程文件认识,QT,QT,c++,学习,源码

嵌入式: 不同芯片型号的开发板 gec6818,rk1808,rk3399 .. 桌面端: windows ,ios ,linux ... 移动端: Android 微控制器: STM32 在QT 开发的程序可以在上述平台上运行!

3、QT模块

QT本身不是一种编程语言,而是一个用标准C++编写的跨平台开发类库,它对标准C++进行了很多扩展,引入很多新的概念和功能,比如信号与槽函数等等。同时为开发GUI应用程序和非GUI应用程序提供了各种类,QT类库中各种类是以模块的形式分类组织,一个模块就是一个编程主题比如数据库、网络、多线程等等

3.1基本模块

QT的工程文件认识,QT,QT,c++,学习,源码

3.2扩展模块

QT的工程文件认识,QT,QT,c++,学习,源码

4、QT工程创建

1.选择应用的窗体格式

QT的工程文件认识,QT,QT,c++,学习,源码

项目选择Application,也就是创建一个Qt应用程序,那么右边就是选择以什么方式创建

Qt WidgetsAppliction 是基于c++语言的窗口工程

Qt Console Application 基于C++的控制台工程

Qtfor Python-Empty 创建基于Python的空工程。

Qtfor Python-window 创建基于Python的窗口工具。

Qt QuickApplication -Empty 创建基于QML的快速应用空工程。

Qt Quick Application -Scroll创建基于QML滑动窗口工程。

Qt Quick Application -Stack创建基于QML的栈窗口工程。

Qt QuickApplication -Swipe创建基于QML的触摸移动窗口工程

2.设置工程的名称与路径

QT的工程文件认识,QT,QT,c++,学习,源码

3.设置类名

QT的工程文件认识,QT,QT,c++,学习,源码

4.选择编译器

QT的工程文件认识,QT,QT,c++,学习,源码

5、QT 工程解析

QT的工程文件认识,QT,QT,c++,学习,源码

QT的工程文件认识,QT,QT,c++,学习,源码

MVC模式:经典MVC模式中,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。其中,View的定义比较清晰,就是用户界面。模型-视图-控制器(MVC)

xxx.pro 工程配置

#添加QT 模块,现有模块才有类
QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

#使用c++11 语法进行工程编译
CONFIG += c++11

#开启编译警告
DEFINES += QT_DEPRECATED_WARNINGS

#添加工程源码
SOURCES += \
    main.cpp \
    mainwindow.cpp

#添加工程头文件
HEADERS += \
    mainwindow.h

#添加工程的界面文件
FORMS += \
    mainwindow.ui

#默认的编译器路径 
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

xxx.h 头文件

//防止头文件重复包含
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

//包含QMainWindow头文件
#include <QMainWindow>

//宏定义 作用:用于关联 XXXX.UI文件
QT_BEGIN_NAMESPACE

//定义一个UI 的命名空间包含MainWindow
namespace Ui { class MainWindow; }
//宏定义
QT_END_NAMESPACE

//定义一个MainWindow类公共继承 QMainWindow
class MainWindow : public QMainWindow
{
    //宏定义 作用:用于实现信号与槽
    Q_OBJECT

public:
    //构造函数
    MainWindow(QWidget *parent = nullptr);
    //析构函数
    ~MainWindow();

private:
    Ui::MainWindow *ui; //定义一个私有成员 ui
};
#endif // MAINWINDOW_H

main.cpp 主函数

//添加用户自定义的mainwindow.h头文件
#include "mainwindow.h"

//添加系统应用头文件
#include <QApplication>

//主函数
int main(int argc, char *argv[])
{
    //创建一个应用对象
    QApplication a(argc, argv);

    //创建一个自定义窗体类
    MainWindow w;
    //显示窗体
    w.show();

    //执行应用
    return a.exec();
}

xxx.cpp 文件

//添加头文件 
#include "mainwindow.h"
//QT软件 自动生成窗体头文件 
#include "ui_mainwindow.h"

//构造函数                         参数列表初始化 传递parent给父类  初始化UI指针
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{
    //调用ui类里面的setupUi函数
    ui->setupUi(this);
}

//析构函数
MainWindow::~MainWindow()
{
    //释放构造函数分配的堆空间 
    delete ui;
}

6、纯手工创建一个QT 工程

1.创建一个纯C++ 工程

QT的工程文件认识,QT,QT,c++,学习,源码

2.在xxx.pro 添加模块

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle

#添加QT 3大模块
QT       += core gui widgets

SOURCES += \
        main.cpp
        
QT本身不是一种编程语言,而是一个用标准C++编写的跨平台开发类库,它对标准C++进行了很多扩展,引入很多新的概念和功能,比如信号与槽函数等等。同时为开发GUI应用程序和非GUI应用程序提供了各种类,QT类库中各种类是以模块的形式分类组织,一个模块就是一个编程主题,比如数据库、网络、多线程等等。

Qt Core模块:是QT类库的核心,所有其他模块都依赖这个模块。
Qt Gui模块:提供GUI程序的基本功能。
Qt Network模块:提供跨平台的网络功能。
Qt Widgets模块:提供创建用户界面的功能。

3.设计界面代码

创建QT应用对象QApplication,创建窗体对象QMainWindow,创建标签对象QLabel
需要包含对对应的头文件#include<QApplication><QMainWindow><QLabel>
退出的时候需要使用应用对象.exec()

#include <iostream>

using namespace std;

//添加QT应用头文件
#include <QApplication>

//添加自带窗体头文件
#include <QMainWindow>

//添加标签头文件
#include <QLabel>



int main(int argc, char **argv)
{
    //创建一个QT应用对象
    QApplication a(argc,argv);

    cout << "Hello World!" << endl;

    //创建一个窗体对象 ,必须要在创建窗体前创建一个应用,因为所有窗体都是在应用上面的
    QMainWindow  w;

    //创建一个标签对象,w对象是他的父亲
    QLabel lb(&w);

    lb.setText("今天真凉快"); //设置标签的内容

    lb.setGeometry(50,50,100,100); //设置标签的位置

    lb.show(); //显示标签

    //显示窗体
    w.show();

    //一直执行
    return a.exec();

}

7、UI文件设计界面

QT的工程文件认识,QT,QT,c++,学习,源码

QT的工程文件认识,QT,QT,c++,学习,源码

QT的工程文件认识,QT,QT,c++,学习,源码

QT的工程文件认识,QT,QT,c++,学习,源码

QT的工程文件认识,QT,QT,c++,学习,源码

UI的原理:当用户修改UI界面文件后,界面未发生任何改变,那么就要自己去修改 ui_xxxx.h 文件

QT的工程文件认识,QT,QT,c++,学习,源码文章来源地址https://www.toymoban.com/news/detail-655011.html

到了这里,关于QT的工程文件认识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Zynq实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持

    PCIE(PCI Express)采用了目前业内流行的点对点串行连接,比起 PCI 以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到 PCI 所不能提供的高带宽,是目前各行业高速接口的优

    2024年02月07日
    浏览(74)
  • 基于XDMA 中断模式的 PCIE 上位机与FPGA数据交互架构 提供工程源码和QT上位机源码

    PCIE(PCI Express)采用了目前业内流行的点对点串行连接,比起 PCI 以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到 PCI 所不能提供的高带宽,是目前各行业高速接口的优

    2024年02月11日
    浏览(52)
  • FPGA XDMA 中断模式实现 PCIE X8 AD7606采集 提供2套工程源码和QT上位机源码

    PCIE(PCI Express)采用了目前业内流行的点对点串行连接,比起 PCI 以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到 PCI 所不能提供的高带宽,是目前各行业高速接口的优

    2024年02月12日
    浏览(38)
  • FPGA驱动FT601实现USB3.0相机HDMI视频采集 提供工程源码和QT上位机源码

    目前USB3.0的实现方案很多,但就简单好用的角度而言,FT601应该是最佳方案,因为它电路设计简单,操作时序简单,软件驱动简单,官方甚至提供了包括FPGA驱动在内的丰富的驱动源码和测试软件; 本设计用FPGA驱动FT601芯片实现USB3.0数据通信,使用同步245模式通信,提供vivad

    2024年02月09日
    浏览(39)
  • FPGA XDMA 中断模式实现 PCIE3.0 AD7606采集 提供2套工程源码和QT上位机源码

    PCIE(PCI Express)采用了目前业内流行的点对点串行连接,比起 PCI 以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到 PCI 所不能提供的高带宽,是目前各行业高速接口的优

    2024年02月13日
    浏览(31)
  • QT6为工程添加资源文件,并在ui界面引用

    这种方式虽然添加到了工程中,但不能在UI设计界面完成引用。主要原因可能是未把文件放入到项目资源文件中,以下面一种方式可以看出区别。 选择qt resource file,点击选择, 然后通过下面的设置得到一个.qrc的资源文件, 鼠标右键这个资源文件,第一种添加的文件在qrc文件

    2024年02月11日
    浏览(43)
  • FPGA驱动FT601实现USB3.0相机 OV5640视频采集 提供2套工程源码和QT上位机源码

    目前USB3.0的实现方案很多,但就简单好用的角度而言,FT601应该是最佳方案,因为它电路设计简单,操作时序简单,软件驱动简单,官方甚至提供了包括FPGA驱动在内的丰富的驱动源码和测试软件; 本设计用FPGA驱动FT601芯片实现USB3.0数据通信,使用同步245模式通信,提供2套v

    2024年02月11日
    浏览(39)
  • FPGA实现USB3.0 UVC 相机HDMI视频输出 基于FT602驱动 提供工程源码和QT上位机源码

    目前USB3.0的实现方案很多,但就简单好用的角度而言,FT601/602应该是最佳方案,因为它电路设计简单,操作时序简单,软件驱动简单,官方甚至提供了包括FPGA驱动在内的丰富的驱动源码和测试软件; 本设计用FPGA驱动FT602芯片实现USB3.0UVC 相机彩条视频输出试验,使用同步245模

    2024年02月03日
    浏览(49)
  • FPGA基于RIFFA实现PCIE采集ov5640图像传输,提供工程源码和QT上位机

    PCIE是目前速率很高的外部板卡与CPU通信的方案之一,广泛应用于电脑主板与外部板卡的通讯,PCIE协议极其复杂,想要掌握不容易,所以Xilinx和Altera等FPGA厂商直接推出了相关IP供用户使用,比如Xilinx的XDMA,这种IP直接集成了PCIE通信的所有内核资源,并已封装为AXIS接口,用户在

    2023年04月09日
    浏览(71)
  • FPGA GTH aurora 8b/10b编解码 PCIE 视频传输,提供2套工程源码加QT上位机源码和技术支持

    没玩过GT资源都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。 GT资源是Xilinx系列FPGA的重要卖点,也是做高速接口的基础,不管是PCIE、SATA、MAC等,都需要用到GT资源来做数据高速串化和解串处理,Xilinx不同的FPGA系列拥有不同的GT资源类型,低端

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包