KDE框架介绍
KDE是目前最好看的桌面框架
https://api.kde.org/frameworks-api/frameworks-apidocs/frameworks/index.html
KDE 框架建立在 Qt 框架上,提供从简单实用程序类(例如 KCoreAddons 中的类)到针对桌面应用程序的常见需求(例如 KNewStuff)的集成解决方案,以在应用程序中获取可下载的附加内容,或者提供强大的功能 KIO 多协议文件访问框架)。
KDE 框架可用于基于 CMake 和基于 QMake 的项目中,并且大多数可移植到至少 Windows,Mac 和 Linux。每个框架的文档都有代码片段,显示了如何将框架包括在 QMake 或 CMake 项目中。
框架根据它们具有的依赖关系分为四个层次。例如,第 1 层框架依赖于 Qt 以及可能的某些第三方库,而不依赖于其他框架。这使它们易于集成到现有应用程序中。
1 层
第 1 层框架仅依赖于 Qt(可能还依赖于少数其他第三方库),因此任何基于 Qt 的项目都可以轻松使用它。
Attica | 开放式协作服务 API |
BluezQt | 用于 BlueZ 5 DBus API 的 Qt 包装器 |
BreezeIcons | 微风图标主题 |
ECM | 额外的 CMake 模块 |
KApiDox | 用于以标准格式和样式构建 API 文档(dox)的脚本和数据 |
KArchive | 文件压缩 |
KCalendarCore | KDE 日历访问库 |
KCGroups | 通过 systemd dbus 接口控制 cgroup 资源 |
KCodecs | 文字编码 |
KConfig | 配置系统 |
KCoreAddons | QtCore 的附件 |
KDBusAddons | QtDBus 的附件 |
KDNSSD | 系统 DNSSD 功能的抽象 |
KGuiAddons | QtGui 的插件 |
KHolidays | 假期计算库 |
KI18n | 先进的国际化框架 |
KIdleTime | 监控用户活动 |
Kirigami2 | QtQuick 插件可根据 KDE 人机界面指南构建用户界面 |
KItemModels | Qt Model / View 系统的模型 |
KItemViews | Qt 模型 / 视图的小部件插件 |
KPlotting | 轻量级绘图框架 |
KQuickCharts | 一个提供高性能图表的 QtQuick 模块 |
KSyntaxHighlighting | 语法高亮 |
KUserFeedback | 用户反馈框架 |
KWayland | Qt 风格的 API 与 Wayland-Client 和 Wayland-Server API 进行交互 |
KWidgetsAddons | QtWidgets 的附件 |
KWindowSystem | 访问窗口系统 |
ModemManagerQt | 用于 ModemManager API 的 Qt 包装器 |
NetworkManagerQt | 用于 NetworkManager API 的 Qt 包装器 |
Oxygen-icons | 氧气图标主题 |
Prison | 条形码抽象层提供对条形码生成的统一访问 |
QQC2-Desktop-Style | 与桌面集成的 QtQuickControls 2 样式 |
Solid | 硬件集成与检测 |
Sonnet | 支持拼写检查 |
ThreadWeaver | 高级多线程框架 |
2 层
第 2 层框架还依赖于第 1 层框架,但仍具有易于管理的依赖关系。
KActivities | 运行时和库在单独的活动中组织用户工作 |
KAuth | 系统策略和身份验证功能的抽象 |
KCompletion | 文字补全助手和小部件 |
KContacts | 支持 vCard 联系人 |
KCrash | 支持应用程序崩溃分析和来自应用程序的错误报告 |
KDocTools | 从 docbook 生成文档 |
KFileMetaData | 文件元数据和文本提取库 |
KImageFormats | Qt 的图像格式插件 |
KJobWidgets | 跟踪 KJob 实例的小部件 |
KNotifications | 抽象的系统通知 |
KPackage | 库,用于加载和安装非二进制文件的软件包,因为它们是插件 |
KPeople | 提供对所有联系人及其联系人员的访问权限 |
KPty | Pty 抽象 |
KUnitConversion | 支持单位换算 |
Syndication | RSS / Atom 解析器库 |
3 层
第 3 层框架通常是功能更强大,更全面的软件包,因此具有更复杂的依赖性。
Baloo | Baloo 是文件索引和搜索框架 |
KActivitiesStats | 一个用于访问活动系统收集的使用情况数据的库 |
KBookmarks | 支持书签和 XBEL 格式 |
KCMUtils | 使用 KCModules 的实用程序 |
KConfigWidgets | 配置对话框的小部件 |
KDeclarative | 提供 QML 和 KDE 框架的集成 |
KDED | 可扩展的守护程序,用于提供系统级服务 |
KDESu | 与 su 集成以获得更高的特权 |
KEmoticons | 支持表情和表情主题 |
KGlobalAccel | 添加对全局工作区快捷方式的支持 |
KIconThemes | 支持图标主题 |
KInit | 进程启动器,以加快启动 KDE 应用程序的速度 |
KIO | 资源和网络访问抽象 |
KNewStuff | 支持从网络下载应用程序资产 |
KNotifyConfig | KNotify 的配置系统 |
KParts | 以文档为中心的插件系统 |
KRunner | 并行查询系统 |
KService | 高级插件和服务自省 |
KTextEditor | 先进的嵌入式文本编辑器 |
KTextWidgets | 高级文本编辑小部件 |
KWallet | 安全统一的用户密码容器 |
KXmlGui | 用户可配置的主窗口 |
KXmlRpcClient | 与 XMLRPC 服务的交互 |
Plasma | 基于插件的 UI 运行时,用于编写主要用户界面 |
Purpose | 提供针对特定目的的可用操作 |
4 层
应用程序程序员几乎可以忽略第 4 层框架。该层由在后台运行的插件组成,以向现有框架(包括 Qt)提供附加功能或平台集成。
FrameworkIntegration | 工作区和跨框架集成插件 |
移植工具
Porting Aids 框架提供了代码和实用程序,以简化从 kdelibs 4 到 KDE Frameworks 5 的过渡。代码应旨在从该框架移植,新项目应避免使用这些库。
KDELibs4Support | 支持 KDELibs4 移植 |
KDesignerPlugin | 用于为 Qt Designer / Creator 生成自定义小部件插件的工具 |
KDEWebKit | QtWebKit 的 KDE 集成 |
KHtml | KHTML API |
KJS | 在应用程序中支持 JS 脚本 |
KJsEmbed | 嵌入式 JS |
KMediaPlayer | 媒体播放器功能的插件界面 |
Kross | 多语言应用程序脚本 |