侧边栏壁纸
博主头像
fynn博主等级

我们应该有恒心,尤其是要有自信心,必须相信自己是有能力的,而且要不惜任何代价把这种能力发挥出来。

  • 累计撰写 51 篇文章
  • 累计创建 21 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

fltk图形框架使用教程

fynn
2023-09-25 / 0 评论 / 0 点赞 / 134 阅读 / 252 字 / 正在检测是否收录...

环境

  • 安装rust
  • 安装msvc
  • 安装cmake
  • 安装 Git

设计工具

cargo install fltk-fluid fl2rust
use std::path::PathBuf;
use std::env;

fn main() {
    println!("cargo:rerun-if-changed=src/myui.fl");
    let g = fl2rust::Generator::default();
    let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
    g.in_out("src/myui.fl", out_path.join("myui.rs").to_str().unwrap()).expect("Failed to generate rust from fl file!");
}

myui.rs

#![allow(unused_variables)]
#![allow(unused_mut)]
#![allow(unused_imports)]
#![allow(dead_code)]
#![allow(clippy::needless_update)]

include!(concat!(env!("OUT_DIR"), "/myui.rs"));

main.rs

use fltk::{prelude::*, *};
mod myui;

fn main() {
    let app = app::App::default();
    let mut ui = myui::UserInterface::make_window();
    ui.but.set_callback(move |_| {
        println!("Works!");
    });
    app.run().unwrap();
}

Cargo.toml

  • 添加打包压缩二进制配置
[profile.release]
opt-level = 'z'     # 根据尺寸进行优化
lto = true          # 启用链接时间优化
codegen-units = 1   # 减少代码生成单元的数量以增加优化.
panic = 'abort'     # Abort on panic
strip = true        # 从二进制中删除符号
  • 添加框架包
[dependencies]
fltk = "1.4.13"

[build-dependencies]
fl2rust = "0.5.17"
0

评论区