QT工具uic、moc、rcc

news/2024/10/7 0:21:13

QT中的moc、uic、rcc

在学习QT的过程中接触到了moc、uic、rcc这几个名词

  • moc(Meta-Object Compiler),元对象编译器,用于处理QT拓展的C++语法
  • uic(User Interface Compiler),用户界面编译器,将根据.ui文件生成相应的.h文件,例如根据mainwindow.ui生成ui_mainwindow.h
  • rcc(Resource Compiler),rcc工具用于在构建过程中将资源嵌入到Qt应用程序中

moc.exe、uic.exe、rcc.exe、qmake的路径F:\QT\5.12.12\mingw73_64\bin

moc工具

moc工具读取一个C++头文件,如果该头文件中存在宏Q_OBJECT,则它会生成一个C++源文件(.cpp),其中包含这些类的元对象代码,元对象(meta object)就是描述另一个对象结构的对象

关于moc的官方文档:https://doc.qt.io/qt-6/moc.html

uic工具

.ui本质上就是一个.xml文件,uic工具读取.ui文件,根据xxx.ui文件生成相对应的头文件,生成的格式为:ui_xxx.h

关于uic的官方文档:https://doc.qt.io/qt-5/uic.html

rcc工具

rcc工具用于在构建过程中将资源嵌入到Qt应用程序中。它通过生成一个C++源文件来工作,该文件包含Qt资源(.qrc)文件中指定的数据。

关于rcc的官方文档:https://doc.qt.io/qt-6/rcc.html

一个hello.ui执行过程,hello.ui是通过QT设计模式生成的图像界面文件,本质上是xml文件,ui文件通过uic工具生成ui_hello.h,hellouiwidget.h包含了ui_hello.h;由于hellouiwidget.h文件中存在宏Q_OBJECT,因此moc工具根据hellouiwidget.h生成包含元对象的cpp文件moc_hellouiwidget.cpp;main.cpp中包含hellouiwidget.h文件,这3个cpp文件通过g++编译器生成.o文件,最后通过链接生成可执行文件exe,大致过程如下所示:

参考链接:https://docs.oldtimes.me/c.biancheng.net/view/3962.html

QT项目的构建过程

QT5可以使用qmake(QT6弃用qmake)或者CMake创建makefile,make命令工具根据makefile文件对指定的文件进行编译和链接;QT Creator创建项目时可以选择不同的构建系统(build system),我在学习过程中一直使用的qmake。

创建好项目后生成的.pro文件就是构建所需要的文件,qmake是一个可执行文件,对整个项目进行Build时,QT Creator根据.pro文件使用qmake.exe生成Makefile,QT安装的目录下Tools\mingw730_64\bin下有一个名为mingw32-make.exe,该exe文件将Makefile进行编译链接最后输出到指定目录。Makefile用于帮助决定大型程序的哪些部分需要重新编译。参考链接:https://makefiletutorial.com/

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

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

相关文章

TIA Portal软件学习(1)

1.TIA Portal中关于变量与数据类型:(常用地址包括I\Q\M\L\DB) 输入映像寄存器I0.0-10.7(一共可以到32767);输出映像寄存器Q0.0-Q0.7(同上)----由于输入输出是存在一定范围的所以引出了M\L\DB——中间寄存器M(全局):可以在变量表里进行选择格式; 临时变量寄存器L(局部)…

Unity打包时隐藏/删除场景中部分内容

背景 使用Unity编辑器时,我们有时候会将服务端的一些信息通过Unity编辑,但由于这部分内容属于服务端,客户端仅限于编辑器中的编辑,我们并不希望将这部分内容打包出去。因此我们需要在打包时将其隐藏或者删除,但是又不影响编辑器的编辑。 打包相关的回调接口 IPreprocessBu…

IEEE754浮点数表示形式

IEEE754浮点数表示形式 IEEE754浮点数官方文档:https://ieeexplore.ieee.org/document/8766229浮点数的上述表示形式,既没有规定阶码和尾数的位数,也没有规定阶码和尾数采用的机器码形式(原码、反码、补码和移码)。实际上,直到20世纪80年代初,浮点数表示形式还没有统一标…

NOTION添加提醒用@

以下摘自:https://notionchina.co/guide/editing-pages/reminders-mentions.html@-提及一个日期 # 当你输入@后跟一个日期(或today、tomorrow、或yesterday),你会在你的页面上添加一个内联的时间戳。例如,输入@1/12会自动添加一个时间戳,有助于根据需要为你的工作确定日期。…

ch5 信息不对称与信息经济

ch5 信息不对称与信息经济重点信息不对称的原因和类型 委托代理关系的构成 逆向选择 道德风险课程目标 掌握信息不对称的经典理论与应用; 了解信息不对称的原因、类型和对市场交易的影响,知晓信息不对称的基本解决方案,明确委托代理的基本原理和方法; 知道逆向选择、道德风…

OpenCV RotatedRect类中angle参数解析 C++

0.前言 本文主要探讨RotatedRect类angle的实际含义,为后续学者提供一定的参考。 1.官方手册 RotatedRect其一构造函数如下图(图1-1)所示。在OpenCV图形坐标系中,水平方向向右为x轴正方向,垂直方向向下为y轴正方向,左上角为(0,0)点。 center表示矩形的中心坐标,size中包含了…

字节面试:CPU被打满了/CPU100%,如何处理?

文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 :《尼恩技术圣经+高并发系列PDF》 ,帮你 实现技术自由,…

ADOV路由和DSR路由matlab对比仿真

1.程序功能描述ADOV路由和DSR路由的仿真,仿真输出网络的路由路径,跳数,路由长度,并对比ADOV和DSR的性能。2.测试软件版本以及运行结果展示 MATLAB2022a版本运行 3.核心程序Nodes = 30; Radius = 10; %节点通信距离 Sp = 10; %开始点 Ep = 6; %目标点 …