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

3.qml与c++模块化开发

目录

  • 模块化开发
  • 封装c++模块并使用
  • 封装qml模块并使用

模块化开发

什么是模块化开发呢?

举个例子:
我们有一台台式电脑,我们台式电脑有显卡,内存,磁盘,cpu,键盘,鼠标等
你可以将这些部件当做模块
我们鼠标坏了换鼠标,我们显卡坏了换显卡
以前是焊死在一起的,坏了一块就得全部丢了,现在不一样了,模块化合并?
哪里坏了,替换哪里,哪里更新换代了,我们买个新的换上去就行了?

好了,说回代码,无论是c++,还是qml模块化管理
都离不开 .pri文件 有了它我们可以快速引入到自己的项目中,我们只需要拷贝某个模块项目的程序
然后在我们的程序里面,在工程文件.pro里面使用

include($$PWD/???/demo.pri)

如果是c++模块那么直接用就可以了
如果是qml模块那就我们的main.cpp里面多做一点处理

封装c++模块并使用

假设我想创建一个-----工具库模块叫flutool,里面就放一些工具类,比如 FileUtil, JsonUtil,IdUtil
然后提供给我一个demo项目untitled使用
在这里插入图片描述在这里插入图片描述
当然我们也并非一定要创建一个库项目,你创建一个qwidget项目都可以编译成库
只需要修改工程文件*.pro中

TEMPLATE = lib

就可以将我们的项目编译成库,以下是我的项目结构,待会我们主项目untitled
就直接快速引入模块flutool并使用模块里面的东西在这里插入图片描述

我们在flutool项目中创建flutool.pri文件,这个文件就是方便我们快速被其他项目使用的一个文件
在这里插入图片描述
在模块项目里面做一些处理,不要生成影子文件
在这里插入图片描述
没有影子文件,我们可以看到我们的库生成放到了release文件夹里面了
在这里插入图片描述
好,接下来写我们的flutool.pri文件
其中这里面的$$PWD指的是当前pro文件所在的目录,到这里我们的模块程序已经完成了,剩下的就升级优化代码了

HEADERS += \$$PWD/IdUtil.h \#如果不编译成库,则引入cpp
#修改后,与使用的项目一起编译
SOURCES += \INCLUDEPATH += \$$PWD/#编译成库,则导入库
#修改后需要重新编译成库,供其他项目使用
LIBS += \-L$$PWD/release -llibflutool

接下来就很简单了直接在我们主程序工程文件里面使用,就会加载了模块程序的资源了
在这里插入图片描述
接下来就是使用了,引入头文件后直接使用
在这里插入图片描述
至此,c++模块化开发你已经学会了

封装qml模块并使用

明天再接着写。。。不好意思

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

相关文章:

  • 怎么使用github上传XXX内所有文件
  • 合作伙伴中心Partner Center中添加了Copilot预览版
  • Navidrome音乐服务器 + 音流APP = 释放你的手机空间
  • Prometheus安装部署
  • 算法(查找算法---二分查找/索引查找/哈希表查找)
  • SQL labs-SQL注入(二)
  • go 语言踏出第一步
  • SpringBoot-21 SpringBoot微服务的发布与部署(3种方式)
  • 在occluded Person Re-ID中,选择clip还是ViT作为backbone?
  • Linuxnat网络配置
  • 77.WEB渗透测试-信息收集-框架组件识别利用(1)
  • ExcelJS:轻松实现Excel文件的读取、操作与写入
  • Java 多线程技术详解
  • 一份简单实用的MATLAB M语言编码风格指南
  • ubuntu 环境下soc 使用qemu
  • Centos安装、迁移gitlab
  • 【Python机器学习】朴素贝叶斯——使用Python进行文本分类
  • 【linux】Shell脚本三剑客之grep和egrep命令的详细用法攻略
  • Spring条件装配:灵活配置你的应用
  • 【前端 08】简单学习js字符串
  • 【LLM】-07-提示工程-聊天机器人
  • AvaloniaUI的学习
  • 刷题——快速排序
  • VPN,实时数据显示,多线程,pip,venv
  • 自然语言处理(NLP)
  • Spring Boot集成Spire.doc实现对word的操作
  • 在Spring Boot中优化if-else语句
  • 【Django】开源前端库bootstrap,常用
  • 2024后端开发面试题总结
  • opencascade AIS_Manipulator源码学习