DDE Store
DDE商店
使用DTK构建的DDE应用商店
由dekzi创建
文章原文 (英文) 初发于: DDE Store (opens new window)
一个加拿大的作者,仿造 “应用商店” 开发的国外版商店 : dde-store (opens new window) , 感觉很赞
# 使用的库
PackageKit - 与系统包互动并管理系统包。
AppStream - 收集包的应用数据(信息和元数据)
Snapd - 可选的Snap支持(显然)
# 文件结构
每个文件都被归类到一个特定的文件夹中。这些文件夹中的大多数都相当简单,除了 "后台 "可能看起来有点模糊。"后台 "文件夹包含了管理和与应用程序的库交互的文件,以及应用程序的设置。没有放在一个文件夹里的3个文件是main.cpp、mainwindow.cpp和mainwindow.h--因为它们是主要的程序文件,所以我没有把它们分类,只把它们放在根目录下。
# 主窗口
主窗口创建UI,如侧栏,并管理所有的页面。侧边栏只是一个简单的DListView,它用一个QStackedWidget来控制页面。对于任何打开的页面,如果在侧边栏中没有相应的条目,QStackedWidget将独立打开它,并清除DListView的选定条目。
# 后台
后端文件(处理库)有点棘手。其中很多是同步和异步的混合,所以前端必须同时适应这两种情况。这就是为什么你可能会看到一些函数需要前端作为参数的原因--这样当异步任务完成时就可以返回数据。如果异步任务有可跟踪的进度,前端就会使用一个DProgressBar。如果没有,则使用DSpinner代替。
# 小部件
我只在 "widgets "文件夹中创建自定义widgets,如果有一个以上的文件可以使用的话。这些widgets中有些只是以特定方式配置的其他widgets,比如 "list.cpp "是一个配置的DListView。其他的可能是完全自定义的,或者是其他widget的混合体,比如图片库或星级图标。
# 源代码
如果你想看看源代码,看看我是如何使用DTK widgets和DTK的功能与系统交互的,你可以查看项目在GitHub (opens new window)!