4 个版本

0.2.0 2023 年 4 月 4 日
0.1.2 2023 年 3 月 28 日
0.1.1 2023 年 3 月 26 日
0.1.0 2023 年 3 月 26 日

#728 in 硬件支持

Download history 10/week @ 2024-03-11 18/week @ 2024-04-01 17/week @ 2024-04-29

66 每月下载量
lemna-wx-rs 中使用

MIT 许可证

53KB
1.5K SLoC

Rust 899 SLoC // 0.0% comments C++ 551 SLoC // 0.0% comments

wx-rs

Crates.io Docs.rs

这是一个 alpha 版本。不要对我期望过高。

目前只支持在 MSVC 工具链上构建

为 Rust 提供的 wxWidgets 部分绑定。目的是导入此库,并静态链接 wxWidgets 所提供的所有组件。实现了 HasRawWindowHandle。使用回调进行渲染和事件处理。特性

  • 窗口初始化
  • 键盘、鼠标事件
  • 剪贴板支持
  • 原生菜单
  • 光标选择

一些很棒的功能

  • 构建脚本只在 MSVC 上进行过测试。之前我已经使用 GNU 工具链在 OSX 和 Windows 上编译过。没有理由认为这不能在 Linux 上工作。
  • Windows/Linux 的图标支持

构建

这个 crate 采取的方法是将 wxWidgets 下载到 ./dist 目录中,然后进行构建。这意味着你需要一个能够编译 wxWidgets 的工具链。

为什么我们这样做而不是使用子模块?因为使用子模块时,cargo 会自然检出文件,但这是我们不希望的,因为我们希望 cargo 在打包时忽略这些文件(因为 wxWidgets 非常大:在去除所有非源文件后,包的大小仍然约为 100MB)。

为什么我们保存/编译到 dist 而不是 cargo 偏好的 OUT_DIR?因为使用后者,我们可能需要更频繁地重新编译 wxWidgets。由于这需要相当长的时间,因此只编译一次并将工件永久保留下来要更加方便。

如果你想进行全新安装,只需运行 rm -R ./dist

构建 wxWidgets

Windows

使用 MSVC 工具链

请确保您正在使用 "x64 Native Tools Command Prompt for VS 2019",并且在首次编译时 cargo 已添加到您的路径。构建完成后,msys 可以很好地继续从 Rust 侧构建内容。

在 Windows 上使用 GNU 工具链

这依赖于 nightly rust 来正确构建

获取 MSYS2

https://www.msys2.org/

$ pacman -Syu
$ pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-make mingw-w64-x86_64-libexpat mingw-w64-x86_64-zlib msys2-w32api-runtime pacman -S mingw-w64-x86_64-lld

构建

这是需要集成到构建脚本中的内容笔记。

在MSYS2 MinGW64终端中

$ cd dist/wxWidgets
$ mkdir msw64-release-build
$ ../configure --with-opengl --disable-shared
$ make -j20

使用OSX工具链

...为什么没有文档说明?:(

依赖项

~0.1–2.2MB
~36K SLoC