qt 插件化开发实例

最终效果

代码仓库

https://gitcode.com/m0_53402432/janna/overview

commit id

https://gitcode.com/m0_53402432/janna/commits/detail/2629c6d8484ce682aafcf6954c98f66f9c1cc49e?ref=main

下载之后如何运行

基本环境搭建

根据 ubuntu 下使用 vscode 开发 qt 解决基本的环境搭建

修改配置

一些配置我写的是绝对路径,需要根据本地环境修改

1. CMakePresets.json

修改 CMAKE_PREFIX_PATH

{
    "name": "preset-base",
    "displayName": "preset base",
    "description": "通用设置",
    "cacheVariables": {
    "CMAKE_PREFIX_PATH": "/home/laolang/program/qt6/6.5.3/gcc_64" // 修改为自己的实际路径
    }
}

2. CMakeLists.txt

修改 vcpkg 配置,将下属路径修改自己的实际路径
注意:需要自行安装相关动态库

# vcpkg ################################################################################################################
set(vckpg_dir "/home/laolang/program/vcpkg")
set(CMAKE_TOOLCHAIN_FILE "${vckpg_dir}/scripts/buildsystems/vcpkg.cmake")
set(fmt_DIR "${vckpg_dir}/packages/fmt_x64-linux-dynamic/share/fmt")
set(spdlog_DIR "${vckpg_dir}/packages/spdlog_x64-linux-dynamic/share/spdlog")

3. .vscode/settings.json

修改 qt 头文件目录

// clangd 配置
"clangd.fallbackFlags": [
    // 设置clangd代码检查的c++版本,目前默认是c++14
    "-std=c++2a",
    // 增加项目自身头文件依赖路径
    "-I${workspaceFolder}",
    // qt头文件目录
    "-I/home/laolang/program/qt6/6.5.3/gcc_64/include/**"
]

4. dist/build.py

主要修改以下几个路径

# app 名称
APP_NAME = "janna"
# 家目录
HOME_DIR = "/home/laolang"
# 打包目录
DEPLOY_PATH = "/home/laolang/tmp/janna/janna"
# 编译目录
BUILD_PATH = "/home/laolang/csdn/gitcode/janna/build/ninja-release"
# qt platforms 目录
QT_PLATFORMS_PATH = "/home/laolang/program/qt6/6.5.3/gcc_64/plugins/platforms"
# 自己的动态库或其他三方库
LIBS = ("libutil", "libspdlog", "libfmt")
# 构建目录中的可执行程序
BUILD_BIN_PATH = f"{BUILD_PATH}/dist/bin/janna"
# 应用程序插件
PLUGINS_APP = [
    "janna.taskbuttons-1.0.0",
    "janna.taskexplorer-1.0.0",
    "janna.volar-1.0.0",
]

一键运行

执行 run.sh 即可一键运行, 效果如下
在这里插入图片描述

打包与测试

执行 dist/build.py, 即可在部署目录看到效果

注意: 需要先编译,直接运行 run.sh 脚本即可

打包后启动测试

在这里插入图片描述

修改插件配置列表

修改 plugins/plugins.json 文件,注释其中一个插件

[
  {
    "id": "janna.taskbuttons",
    "version": "1.0.0",
    "path": "janna.taskbuttons-1.0.0",
    "enable": true
  },
  {
    "id": "janna.taskexplorer",
    "version": "1.0.0",
    "path": "janna.taskexplorer-1.0.0",
    "enable": true
  }
//   ,
//   {
//     "id": "janna.volar",
//     "version": "1.0.0",
//     "path": "janna.volar-1.0.0",
//     "enable": true
//   }
]

再次启动程序并测试

注意: 由于插件配置列表中删除了 volar 插件,所以现在控制台没有了对应的输出

在这里插入图片描述

用户目录添加一个插件

将 volar 插件复制到 data/plugins 目录下,并在 data/plugins/plugins.json 中配置插件

laolang@laolang-pc:plugins$ pwd
/home/laolang/tmp/janna/janna/data/plugins
laolang@laolang-pc:plugins$ tree
.
├── janna.volar-1.0.0
│   ├── janna.volar.json
│   └── libvolar.so
└── plugins.json

1 directory, 3 files
laolang@laolang-pc:plugins$

其中 plugin.json 文件内容如下

[
  {
   
   
    "id": "janna.volar",
    "version": "1.0.0",
    "path": "janna.volar-1.0.0",
    "enable"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值