littlebot
Published on 2025-04-07 / 0 Visits
0

【源码】基于C++的嵌入式系统Wayland图形界面库

项目简介

WaylandGUI是一个简约的图形界面库,基于NanoGUI开发。该项目聚焦于运行Debian 11(或类似版本Linux)的基于SOM的ARM设备,去除了大部分不必要的内容,放弃对Python、Windows和Apple系统的支持,旨在为嵌入式Debian系统提供良好的图形界面解决方案。

项目的主要特性和功能

  1. 专注嵌入式系统,仅针对嵌入式Debian系统,避免引入过多复杂依赖,便于通过监管审批。
  2. 图形后端优化,当前使用GLES 3用于GLFW层,后续计划仅使用Wayland EGL,还可能考虑采用Vulkan。
  3. 精简依赖,不包含GLFW,需从官方仓库构建,移除了与xWayland和Wayland有冲突的libglvnd相关依赖。
  4. 支持基本控件,可依据NanoGUI文档创建各种基本控件,如按钮、滑块、文本框等,并能进行事件回调设置。

安装使用步骤

假设用户已下载本项目的源码文件,在干净的Debian 11虚拟机或目标设备的SD卡上,且有足够磁盘空间(若不是root用户,多数命令前需加sudo),按以下步骤操作: 1. 安装系统依赖 bash apt-get update apt-get install build-essential dkms linux-headers-$(uname -r) apt-get upgrade apt-get install cmake ninja-build unzip zip git patchelf pkg-config extra-cmake-modules apt-get install libgles-dev libwayland-dev libxkbcommon-dev wayland-protocols apt-get install waylandpp-dev libvulkan-dev libglfw3-wayland 2. 编译安装GLFW bash mkdir Projects cd Projects cd glfw mkdir build && cd build cmake -DGLFW_USE_WAYLAND=ON -DBUILD_SHARED_LIBS=ON -DGLFW_BUILD_EXAMPLES=OFF \ -DGLFW_BUILD_TESTS=OFF -DGLFW_BUILD_DOCS=OFF -DGLFW_INSTALL=ON -DGLFW_BUILD_COCOA=OFF \ -DGLFW_BUILD_X11=OFF -DUSE_MSVC_RUNTIME_LIBRARY_DLL=OFF.. make install 3. 编译安装WaylandGUI bash cd ~/Projects cd waylandgui mkdir build && cd build cmake -Wno-depricated -Wno-error=depricated.. make install ./example3 4. 创建控件:可参考以下代码示例创建控件 ```cpp // 创建按钮 Button *b = new Button(window, "Plain button"); b->set_callback([] { cout << "pushed!" << endl; });

// 创建滑块和文本框 Widget panel = new Widget(window); panel->set_layout(new BoxLayout(BoxLayout::Horizontal, BoxLayout::Middle, 0, 20)); Slider slider = new Slider(panel); slider->set_value(0.5f); slider->set_fixed_width(80); TextBox *tb = new TextBox(panel); tb->set_fixed_size(Vector2i(60, 25)); tb->set_value("50"); tb->set_units("%"); slider->set_callback(tb { tb->set_value(std::to_string((int) (value * 100))); }); ```

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】