CapyZig 的 GUI 库
Capy 是一个用于在 Zig 中制作真正的原生 GUI 的跨平台库。目前,Capy 尚在积极开发中,还没有准备好应用于生产。
Capy 主要用于使用操作系统的本地控件来创建应用程序。它是一个声明式的 UI 库,旨在使其易于编写并具有多样性。目标是为独立的 UI 应用提供支持,在游戏或任何其他渲染过程中的集成是一个非目标。
const capy = @import("capy");
const std = @import("std");
pub fn main() !void {
try capy.backend.init();
var window = try capy.Window.init();
try window.set(
capy.Column(.{ .spacing = 10 }, .{ // have 10px spacing between each column's element
capy.Row(.{ .spacing = 5 }, .{ // have 5px spacing between each row's element
capy.Button(.{ .label = "Save", .onclick = buttonClicked }),
capy.Button(.{ .label = "Run", .onclick = buttonClicked })
}),
// Expanded means the widget will take all the space it can
// in the parent container
capy.Expanded(
capy.TextArea(.{ .text = "Hello World!" })
)
})
);
window.resize(800, 600);
window.show();
capy.runEventLoop();
}
fn buttonClicked(button: *capy.Button_Impl) !void {
std.log.info("You clicked button with text {s}", .{button.getLabel()});
}
评论
