qwlroots 是一个 wlroots 的绑定,提供 Qt 风格的开发接口。其设计目标是使用 Qt 简化调用 wlroots API 的方式,服务于希望在使用 Qt 编写的项目中调用 wlroots 的需求。在 qwlroots 中,每一个 wlroots struct 及其配套的函数被封装为一个 c++ class,同时,wayland 中的 wl_singal 被封装为 Qt 中的信号。
由于 wlroots 还处于开发中,至今未发布 1.0 版本,可能会随时进行比较大的改动。因此,qwlroots 的最新代码仅保证兼容 wlroots 的最新版本和下一个即将发布的版本(即目前还处于开发中的版本),对于历史版本一概不保证兼容。同时,同 wlroots,qwlroots 目前也不提供长期的接口兼容性保障。
其它环境未测试
步骤一:编译安装 wlroots
亦可在系统仓库中安装 wlroots (需注意版本)
步骤二:安装依赖
Debian
# apt install pkg-config cmake qt6-base-private-dev qt6-base-dev-tools wayland-protocols libpixman-1-dev
Arch Linux
# pacman -Syu --noconfirm qt6-base cmake pkgconfig pixman wayland-protocols ninja
步骤三:运行以下命令
cmake -B build
cmake --build build
此项目默认您已经拥有Qt
和wlroots
库的使用经验,为了能更好的融合 Qt 和 wlroots,qwlroots 在接口风格上遵守Qt的相关规范,在底层的设计理念(如模块划分)上遵守 wlroots 的设计思想,上层与 wlroots 无直接关联的部分则遵守 Qt 的“封装+分层”的设计思想。
在遵守 qwlroots 的设计理念和以下几类要求的前提下,您可以自由地向此项目提交任意的代码贡献。
提交步骤:
git clone
拉取fork之后的项目git push
推送到您的项目中commit 信息规范:与 Qt 项目保持一致,统一使用英文。一定要准确描述出这个提交“做了什么”、“为什么要这样做”
一个 commit 只做一件事情,代码量改动越小的 commit 越容易被接受。对于较大的代码改动,尽量拆分为多个代码提交(满足 git commit 的原则为前提)
在提交代码之前请自行进行测试和代码 Review,在确认代码无误后再提交 PR
from
静态函数实现对象的创建handle
、from
两个成员函数,一般还可能需要提供get
函数。
nullptr
nullptr
,使用此函数的返回值之前一定需要判断指针是否为空setxxxx
的信号,一般是用于通知xxxx
被设置了,在 qwlroots 中封装时需将其改为xxxxChanged
,以符合 Qt 信号的命名习惯以上部分内容可参考 class 模板。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。