注:此文适合于对rust有一些了解的朋友
iced是一个跨平台的GUI库,用于为rust语言程序构建UI界面。
想要了解如何构建简单窗口的可以看本系列的第一篇:
Rust UI开发:使用iced构建UI时,如何在界面显示中文字符
本篇是系列第二篇,主要解决一个问题,就是为窗口添加图标icon。
注:窗口图标在其他语言中,应该是非常容易实现的,但iced是一个发展中的库,很多方面还不成熟,我在用iced自己的方法测试window图标,花了很多时间,效果还不好,所以特意记录此篇,一来做个记录,方便以后回看,二来给其他有这方面问题的朋友做个参考。
我们先来看一下iced中对于窗口参数设置里icon的定义:
/// The icon of the window.
pub icon: Option<Icon>,
icon参数是一个枚举,枚举类型是Icon。
再去看Icon的定义:
/// An window icon normally used for the titlebar or taskbar.
#[derive(Debug, Clone)]
pub struct Icon {
rgba: Vec<u8>,
size: Size<u32>,
}
可以看到,这里Icon的数据是rgba数据,是一种图像的数据类型。
rgba是rgb的基础上,另外增加了一个a(阿尔法)通道,表示透明度信息。
也就是说,rgb是[u8,u8,u8],而rgba是[u8,u8,u8,u8]。这里u8指2的8次方即256种颜色值(0-255)。
总的来说,你只要知道在这里,Icon是{rgba,size}组合的数据形式。
所以,如果我们要设置这个icon图标,我们知道,图片应该是rgba格式的,且设置一个尺寸如4848,6464,类似这种。文章来源:https://www.toymoban.com/news/detail-767065.html
先看图像的格式,通常如果读取一张图片,数据应该是rgb,所以需要转换。
看下面的代码:文章来源地址https://www.toymoban.com/news/detail-767065.html
到了这里,关于Rust UI开发(二):iced中如何为窗口添加icon图标的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!