#widgets #immediate #piet #programming #command #manager #events

guiver

使用 Piet 进行 GUI 编程

2 个不稳定版本

0.1.0 2022年7月25日
0.0.1 2022年7月5日

#446 in GUI

MIT/Apache

87KB
2K SLoC

guiver

Rust GUI 编程。

guiver 可以在即时模式中使用,这种模式受到 egui 的启发。在这种情况下,它只是对 druid-shell(用于事件处理/窗口管理)和 Piet(用于渲染)的薄包装。

还有保留模式的小部件,可以在可选的小部件管理器的帮助下使用。小部件通过消息传递与应用程序数据解耦,这种做法受到 Tk 命令 和 egui 的启发。

Bildschirmfoto 2022-07-25 um 19 35 35 Bildschirmfoto 2022-07-25 um 19 59 34 Bildschirmfoto 2022-07-24 um 13 41 24 Bildschirmfoto 2022-07-24 um 11 59 31 Bildschirmfoto 2022-07-24 um 11 58 56 Bildschirmfoto 2022-07-24 um 12 59 33

待办事项

  • 文本输入:
    • 接受粘贴
    • 显示插入符
    • 箭头键应该移动插入符
    • 支持文本选择
      • Shift + 光标移动
      • Ctrl + A
    • Ctrl+X 应该剪切文本
    • Ctrl-C 应该复制文本
  • 添加到 `Style`
    • 强调色
    • 字体
    • 间距
      • Row 构造函数中使用它吗?
      • Padding 构造函数中使用它吗?
  • 实现 7GUIs
    • 7GUIs "Flight Booker"
      • 实现 DropdownBox
    • 7GUIs "Timer"
    • 7GUIs "CRUD"
    • 7GUIs "Circle Drawer"
    • 7GUIs "Cells"
  • 添加 Redmond 31 小部件
  • WidgetManager: 实现 collect_garbage()
    • 移除所有不以主小部件为祖先的小部件
  • WidgetManager: 添加选项卡顺序
  • 允许静态应用程序的“无循环”优化,这些应用程序只渲染一次
  • 添加 Python 绑定
  • 提供原生小部件吗?
  • 提供一个 WebAssembly 示例

另请参阅 "So you want to write a GUI framework"

依赖项

~3.5–7MB
~126K SLoC