EasyTier 是近期国内小有名气的一款开源去中心化异地组网工具,内网穿透和异地组网工具,适合远程办公、异地访问、游戏加速等多种场景。
QtEasyTier 是一个基于 Qt 6 / C++ 的 EasyTier 桌面客户端。它提供了直观的图形界面,帮助用户轻松配置和管理虚拟网络,实现跨网络设备的安全通信。作为参赛作品,QtEasyTier 在近期主要的开发是 DTK 风格适配和 DDE 托盘插件的开发。
注意:本项目只是开源工具类软件,并不提供异地组网服务,需要自行解决公网连接问题
本项目以 LGPL 3 协议开源
deepin 用户可以在附件页面下载 qteasytier-dde 包进行尝试,包含 amd64 和 arm64 两份安装包,选择对应架构安装即可( arm64 由 CNB 流水线产出,没有实机测试过 )
地址:https://cnb.cool/myqfeng/qteasytier/qt-easy-tier/-/build/logs/cnb-f08-1k195h7bk
后期有更新也会在 CNB 仓库的流水线中自动化构建,可以关注一下
项目的开发主要分为两个阶段,第一个阶段是应用UI的 DTK 风格的适配,第二个阶段是托盘插件的开发。
QtEasyTier 之前主要是通过原生 Qt (QML )进行开发的,对于DTK的适配,我的目标是在保证项目原有UI不做大变动的前提下,开发出专门适配DDE的分支。于是,我让 Agent 工具 (OpenCode & DeepSeek) 对项目源码进行研读并且分析dtk-development skill后,讨论出了以下方案:
通过以上的方式,我在尽量不破坏原有项目内容的前提下,增加了对 DDE 的专门适配版本
总体思路:以独立插件的形态构建 .so 动态库,但在代码中复用主程序已有的部分能力,包括配置存放数据库的读写、与Daemon的通信等。
具体的实现逻辑放在src/dde_tray_plugin中,在复用已有组件的基础上独立实现一个轻量的实例状态轮询机制。UI层面,由于此处的界面比较简单,我直接使用 QWidget + QSS 进行制作。插件独立与QtEasyTier前端运行。
作为从 deepin 15走到现在的老用户,我其实也一直想为 deepin 生态做点贡献,奈何学识浅薄,没精力研究 DTK 的相关开发教程文档,好在社区开源了相关的 Skills 能力,让我有了将自己的项目适配 DDE 的机会。祝愿 deepin 发展越来越好!
Ps: 对 QtEasyTier 项目感兴趣的小伙伴欢迎加入 QtEasyTier 交流Q群:1081241238
No replies yet
Featured Collection
Popular Ranking
Popular Events
QtEasyTier 项目介绍
EasyTier 是近期国内小有名气的一款开源去中心化异地组网工具,内网穿透和异地组网工具,适合远程办公、异地访问、游戏加速等多种场景。
QtEasyTier 是一个基于 Qt 6 / C++ 的 EasyTier 桌面客户端。它提供了直观的图形界面,帮助用户轻松配置和管理虚拟网络,实现跨网络设备的安全通信。作为参赛作品,QtEasyTier 在近期主要的开发是 DTK 风格适配和 DDE 托盘插件的开发。
注意:本项目只是开源工具类软件,并不提供异地组网服务,需要自行解决公网连接问题
主要功能特性
项目地址
安装使用
deepin 用户可以在附件页面下载 qteasytier-dde 包进行尝试,包含 amd64 和 arm64 两份安装包,选择对应架构安装即可( arm64 由 CNB 流水线产出,没有实机测试过 )
地址:https://cnb.cool/myqfeng/qteasytier/qt-easy-tier/-/build/logs/cnb-f08-1k195h7bk
项目截图
项目开发说明
项目的开发主要分为两个阶段,第一个阶段是应用UI的 DTK 风格的适配,第二个阶段是托盘插件的开发。
阶段一:UI适配
QtEasyTier 之前主要是通过原生 Qt (QML )进行开发的,对于DTK的适配,我的目标是在保证项目原有UI不做大变动的前提下,开发出专门适配DDE的分支。于是,我让 Agent 工具 (OpenCode & DeepSeek) 对项目源码进行研读并且分析dtk-development skill后,讨论出了以下方案:
通过以上的方式,我在尽量不破坏原有项目内容的前提下,增加了对 DDE 的专门适配版本
阶段2: 托盘插件开发
总体思路:以独立插件的形态构建 .so 动态库,但在代码中复用主程序已有的部分能力,包括配置存放数据库的读写、与Daemon的通信等。
具体的实现逻辑放在src/dde_tray_plugin中,在复用已有组件的基础上独立实现一个轻量的实例状态轮询机制。UI层面,由于此处的界面比较简单,我直接使用 QWidget + QSS 进行制作。插件独立与QtEasyTier前端运行。
写在最后
作为从 deepin 15走到现在的老用户,我其实也一直想为 deepin 生态做点贡献,奈何学识浅薄,没精力研究 DTK 的相关开发教程文档,好在社区开源了相关的 Skills 能力,让我有了将自己的项目适配 DDE 的机会。祝愿 deepin 发展越来越好!
Ps: 对 QtEasyTier 项目感兴趣的小伙伴欢迎加入 QtEasyTier 交流Q群:1081241238