[Rust GUI]fltk-rs的helloworld

article/2025/9/1 13:19:53

1、安装VSCode

下载安装VSCode
安装VSCode扩展 rust-analyzer或rust-analyzer(CN)

2、安装Microsoft C++ 生成工具

访问微软官网下载生成工具,勾选使用 C++ 的桌面开发之后会自动勾选5个项目
取消勾选以下项目
用于 Windows 的 C++ CMake 工具
测试工具核心功能 - 生成工具
C++ AddressSanitizer
只保留以下两个(SDK版本不用管,Win10或Win11都行,勾什么就留什么,不用自己勾)
MSVC v143 - VS 2022 C++ x64/x86 生成工具
Windows 11 SDK (10.0.22000.0)

3、安装rust

安装前必须重启电脑
访问Rust官网下载并安装Rust

4、设置rust镜像

运行where rustc找到.cargo文件夹
.cargo文件夹下新建无后缀文件,文件名为config,并输入以下内容,保存

[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'ustc'
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"

5、安装CMake

fltk-rsfltk-fluid都需要安装CMake,如果以捆绑库的方式运行可以跳过安装


CMake官网、腾讯软件,用IDM、Motrix等下载软件加速下载
可能的文件名:cmake-3.26.0-windows-x86_64.msi
选择Add CMake to the system PATH for all users
在这里插入图片描述

6、安装git

fltk-rsfltk-fluid都需要安装git,如果以捆绑库的方式运行可以跳过安装


阿里镜像、GitClone、Git官网
可能的文件名:Git-2.40.0-64-bit.exe

7、创建项目(方式一 使用捆绑库)

  1. 创建
    cargo new fltkdemo
    cd .\fltkdemo\
    cargo add fltk --features=fltk-bundled
    cargo run

  2. 解决捆绑库下载问题

    注意报错提示,下载github文件失败,手动下载或修改下载地址
    thread ‘main’ panicked at ‘Download bundled libraries from “https://github.com/fltk-rs/fltk-rs/releases/download/1.4.0/lib_x64-windows-msvc.tar.gz” failed

    新建文件夹fltk-lib,新建子文件夹.\fltk-lib\1.4.0(版本号要符合下载链接)
    根据下载链接手动下载压缩包,放入.\fltk-lib\1.4.0文件夹
    VSCode安装Live Server插件
    用VSCode打开文件夹fltk-lib,点击VSCode右下角Go Live启用本地服务器
    浏览器将自动打开,查看压缩包链接,例如:http://127.0.0.1:5500/lib_x64-windows-msvc.tar.gz

    查看整句报错,注意.cargo\registry\src\***\fltk-sys-***\build\bundled.rs这个文件,编辑这个文件

    字符串:

    https://github.com/fltk-rs/fltk-rs/releases/download
    

    修改为:

    /*"https://gitclone.com/github.com/fltk-rs/fltk-rs/releases/download"*/"http://127.0.0.1:5500"
    

    (运行成功后Github链接记得改回来,不然影响其他项目)
    (运行成功后Live Server就可以关闭了,fltk-lib文件夹也用不着了)
    删除.\fltkdemo\target文件夹,修改才能有效

  3. 运行
    重新运行cargo run,成功输出Hello,world!
    在这里插入图片描述

8、创建项目(方式二 本地CMake编译)

安装cmake,浏览到第5段按步骤安装
安装git,浏览到第6段按步骤安装

cargo new fltkdemo2
cd .\fltkdemo2\
cargo add fltk
cargo run,成功输出Hello,world!
在这里插入图片描述

9、使用fltk-rs

编辑文件.\src\main.rs

use fltk::{app, prelude::*, window::Window};fn main() {let app = app::App::default();let mut win = Window::new(100, 100, 250, 100, "你好,fltk-rs!");win.end();win.show();app.run().unwrap();
}

运行cargo run,成功显示窗口
在这里插入图片描述

10、Fluid(GUI程序开发工具)

  1. 安装
    安装fltk-fluid需要先安装git和CMake
    cargo install fltk-fluid
    在项目路径中运行cargo add fl2rust --build

  2. 创建编译文件build.rs
    在项目的根目录下添加一个 build.rs 文件,内容如下

    // build.rs
    fn main() {use std::path::PathBuf;use std::env;println!("cargo:rerun-if-changed=src/myuifile.fl");let g = fl2rust::Generator::default();let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());g.in_out("src/myuifile.fl", out_path.join("myuifile.rs").to_str().unwrap()).expect("Failed to generate rust from fl file!");
    }
    
  3. 设计界面
    运行fluid打开FLTK UI Designer(UI设计器)

    菜单栏 - New - Code - Class,创建一个类
    菜单栏 - New - Code - Function/Method…,创建一个函数
    菜单栏 - New - Group - Window…,添加一个窗口

    双击Double_Window,出现预览窗口
    窗口太小,拖动窗口边框右下角,往右拽拽,拉大窗口

    双击预览窗口,出现属性窗口
    GUI - Label,输入我的应用
    Style - Color按钮,选择白色(第一行倒数第一个)
    C++ - Name,输入my_win
    点击Close按钮关闭属性窗口

    右键预览窗口,Buttons - Button…
    双击Button,出现属性窗口
    GUI - Label,输入点击按钮
    GUI - Position - Width,修改为64
    Style - Label Color按钮,选择天蓝色(第一行倒数第二个)
    Style - Color按钮,选择黑色(第一行第一个)
    C++ - Name,输入btn
    点击Close按钮关闭属性窗口

    单击选择Button
    菜单栏 - Layout - Center In Group,Horizontal和Vertical,两个都点
    按钮将移动到预览窗口中央

    菜单栏 - File - Save As…(Ctrl_Shift+S),命名为myuifile.fl,保存在.\src\myuifile.fl位置

  4. UI文件
    在src目录下创建一个fluid相关文件 myuifile.rs,内容如下

    // src/myuifile.rs
    #![allow(unused_variables)]
    #![allow(unused_mut)]
    #![allow(unused_imports)]
    #![allow(clippy::needless_update)]include!(concat!(env!("OUT_DIR"), "/myuifile.rs"));
    
  5. main.rs
    编辑文件.\src\main.rs

    use fltk::{app, prelude::WidgetExt};
    mod myuifile;fn main() {let app = app::App::default();let mut ui = myuifile::UserInterface::make_window();let mut win = ui.my_win.clone();ui.btn.set_callback(move |b| {b.set_label("已点击");win.set_label("已点击");println!("已点击");});app.run().unwrap();
    }
    
  6. 运行
    cargo run
    在这里插入图片描述

11、文档

fltk book 中文文档
fltk - crates



请添加图片描述


http://chatgpt.dhexx.cn/article/fkS9P3ou.shtml

相关文章

使用CLion配置第一个FLTK界面

文章目录 写在前面安装与配置安装helloworld配置命令行配置CLion 运行结果 写在前面 假期抽时间学习一下跨平台GUI界面的开发, 正好也当做C的练手小项目了. C标准库中没有对于GUI的支持, 需要依赖三方库, 这里我先想到的是老牌跨平台GUI——Qt, 但是作为一个小项目感觉使用Qt有…

FLTK-Rs 2

Trees 树形结构,允许在树中显示项目,使用add方法发添加条目 use fltk::{prelude::*, *}; use fltk::enums::FrameType;fn main() {let a celet mut win window::Window::default().with_size(400, 300);let mut tree tree::Tree::new(5,5,390,290,&…

FLTK的UI设计工具FLUID使用方法总结

tags: FLTK C GUI 写在前面 终于又捡起来FLTK了, 先来看看怎么通过FLUID创建一个图形界面并完成回调函数的创建, 参考的是官方教程中关于创建一个CubeView程序的例子, 教程里面很多都与最新版本的FLTK界面不太一致, 但是通过我的摸索还是找出了方法. 下面来分享一下. 创建类…

fltk和glog在mac下的安装与编译

glog 根据官方文档安装即可 https://github.com/google/glog % git clone https://github.com/google/glog.git % cd glog % cmake -S . -B build -G "Unix Makefiles" //这句含义未知 % cmake --build build安装完后可以去/usr/local目录下查看是否有对应的头文件…

c语言fltk图形库,FLTK编程模型

2003 年 5 月 10 日 FLTK(Fast Light Tool Kit 发音为fulltick) 是一种使用C++开发的GUI工具包,它可以应用于Unix,Linux,MS-Windows95/98/NT/2000和MacOS操作系统平台,相对于其它的许多图形接口开发工具包(如MFC、GTK、QT等),它具有体积很小、速度比较快,且有着更好的移植性…

FLTK-Rs

终于还是到这一步了,可视化,我的超人! FLTK是一个跨平台的轻量级 gui 库。该库本身是用 C98 编写的,具有很高的可移植性。fltk crate 是用 Rust 编写的,并使用 FFI 调用 FLTK 包装器cfltk,它是用 C89 和 C…

Visual Studio 安装 FLTK

Visual Studio 安装 FLTK 环境介绍 Windows 10Visual Studio Community 2019 (2021-11-29补充2022版)FLTK-1.3.7 下载与解压 ​ 进入FLTK官网-Download下载最新版本。 ​ 解压到D:\Program Files\fltk(解压路径任意都行),推荐使用Bandzip免费解压工具。 编译 …

FLTK--轻量级C++跨平台GUI库

FLTK FLTK(Fast Light Toolkit)是一个跨平台的CGUI工具集,用在UNIX/Linux(X11)、微软Windows和Mac OS X上。FLTK提供现代的GUI功能,除却膨胀,通过OpenGL和内建的GLUT模拟器提供3D图形支持。最初…

浅谈如何fltk项目编译和实现显示中文

目录 一、编译 二、中文显示如何处理: 2.1在发文2天前突然发现,我这个界面显示英文出现问题了,开始我的搜索之旅,一些参考页面有碰到问题也可以看看: 2.2、 那就开始翻翻官方自带的例程吧,看看他如何显…

FLTK 学习一:简介和安装

文章目录 FLTK 简介FLTK 安装FLTK Windows安装FLTK Linux 安装 FLTK 简单示例参考资料 FLTK 简介 从网上引用的一段 FLTK 的介绍 FLTK (Fast Light Tool Kit 发音为fulltick) 是一种使用 C 开发的 GUI 工具包,它可以应用于 Unix, Linux, MS-Windows95/98/NT/2000 和…

安装使用FLTK图形库

FLTK是Fast Light Toolkit的简称,是一个跨平台的C GUI包,FLTK提供xiandai GUI功能,而且通过OpenGL支持3D图像。 下载FLTK安转包fltk-1.3.4-1-source.tar.gz: http://www.fltk.org/software.php?VERSION1.3.4&FILEfltk/1.3.…

BOBCAT: 基于双层优化的计算机化自适应测验(超硬核解读论文+阅读论文技巧)

文章目录 前言AbstractIntroductionCAT 介绍传统的认知诊断模型传统的CAT选题策略传统方法局限性 ContributionsBOBCAT框架双层优化问题BOBCAT框架BOBCAT 训练过程 OptimizationExperiments能力评估问题暴露和内容重叠问题选择 Conclusions 前言 大家好,我是小曾&a…

项目管理理论与实践(3)——如何进行有效的项目管理

对于具有成功并有效的项目管理经验的项目经理,还是非常难得的。因为项目管理并不是一件很简单的事情。虽然自己对于项目管理的理解还是处于初级阶段,但是利用自己学习到的理论知识,还是想做一次归纳,希望对大家能够受用。那么就开…

计算机自适应考试技巧,计算机自适应题库实现

在软件的开发中,基于题库的计算机自适应考试已成为一个重要的发展方向,而计算机自适应题库的建立就显得尤为重要。计算机自适应测验(Computerized Adaptive Testing,简称CAT)是近年来发展起来的一种新的测验形式。这种测验以项目反应理论为基础,以计算机技术为手段,在题库…

项目经理都会面临什么问题?

最近手里一个项目接近尾声,还有一个项目正在初期调研,无缝衔接,原定结项之后的3天假期也泡汤了,每一个环节都出问题我真的会心累,再加上最近组里人事变动,也没有及时做好复盘,客户又出现了临时需…

反应-扩散方程(Reaction-diffusion system)

文章目录 1. 单组分反应-扩散方程2. 双组分反应-扩散方程3. 三组分和更多组分的反应-扩散方程4. Fishers equation4.1 KPP方程 5. Belousov–Zhabotinsky reaction5.1 历史5.2 化学机理5.2.1 变体 5.3 Noise-induced order5.3.1 数学背景 6. Briggs–Rauscher reaction7. ZFK e…

项目延期的因素有哪些?项目经理应该如何应对

项目延期是项目管理中常见的问题之一,也是管理者最头疼的问题。项目延期的出现可能是由于以下原因: 1、工作中突发事件多:在评估工作量时,通常会基于过往的经验来进行评估,但由于信息社会中各种信息随处可见&#xf…

项目管理中影响项目进度的原因及解决方法

项目管理中对工期的控制主要是进度控制,在项目进行过程中,由于项目时间跨度长,人员繁杂,如果管理不规范,就容易导致项目进度滞后,如何管理好施工进度是管理者需要解决的问题之一。 1、项目计划缺乏执行力…

图解PMP项目管理马斯洛需求层次理论在公司管理中的应用!

马斯洛的需求层次结构是心理学中的激励理论,包括人类需求的五级模型,通常被描绘成金字塔内的等级。 从层次结构的底部向上,需求分别为:生理(食物和衣服),安全(工作保障)…

php 项目反应理论,科学网—好文 | 纽约石溪大学:机器学习中基于项目反应理论的集成学习 - 陈培颖的博文...

机器学习中,研究者们对分类集成的关注与日俱增,尤其关注分类精度的提升。IJAC近期发表了来自纽约石溪大学研究者的最新成果,该研究基于项目反应理论,提出一种加权投票方法---基于IRT理论的集成学习算法,该方法可正确处…