moonbit 显示图片
克隆项目
git clone liyuansi2222/helloworld-moonbit-gui - AtomGit
cd helloworld-moonbit-gui
moon add NoahLiu/native-gui
这句是加载 NoahLiu/native-gui,显示图片用。
liyuansi@gentoo ~/helloworld-moonbit-gui $ moon build --release
moon run cmd/main/
出结果了
程序如下:
fn image_widget(path : String) → @widget.Node {
@widget.node_of_new(fn(w : @widget.Widget) → @widget.Widget {
w.node.set_width(@yoga.fixed(420.0))
w.node.set_height(@yoga.fixed(420.0))
w.on_draw = Some(fn(_w : @widget.Widget, p : @render.Painter, _r : @base.Rect) -> Unit {
// 背景
p.set_fill_color(@theme.theme_bg_panel())
p.fill_rect(0.0, 0.0,420.0, 420.0)
// 加载图片
let img = @render.Image::new_from_file(path)
if img.is_empty() {
// 加载失败,画个占位框
p.set_stroke_color(@theme.theme_border())
p.set_line_width(2.0)
p.stroke_rect(20.0, 20.0, 380.0, 420.0)
} else {
// 画图片,指定位置和尺寸
p.draw_image(img, 20.0, 20.0, 380.0, 420.0)
}
})
w
})
}
fn main {
let path = “assets/logo.png”
match @ui.mount_window(
[
@ui.col(
[
@ui.text(“显示图片示例”, font_size=18.0),
关键是这句:
let img = @render.Image::new_from_file(path)
let path = “assets/logo.png”


