国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[Rust GUI]0.10.0版本iced代碼示例 - progress_bar

這篇具有很好參考價值的文章主要介紹了[Rust GUI]0.10.0版本iced代碼示例 - progress_bar。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

-1 字體支持

iced0.10.0 僅支持指定系統內置字體(iced默認字體中文會亂碼)
iced0.10.0 手動加載字體的功能已經砍了,想手動加載就用0.9.0版本,文檔0.9.0版本
想顯示中文則需要運行在一個自帶字體的Windows系統上。而且這個字體最好不要錢。
(Windows閑著沒事不會給你放免費字體進去,都是微軟自己買的,只能微軟用)

如果選用的字體用戶的電腦里恰好沒有,iced就直接亂碼給你看。
[Rust GUI]0.10.0版本iced代碼示例 - progress_bar,rust,開發(fā)語言,后端,windows,gui,iced

0、準備

1、安裝Visual Studio C++ Build tools

1、訪問微軟官網下載生成工具
2、勾選這個
[Rust GUI]0.10.0版本iced代碼示例 - progress_bar,rust,開發(fā)語言,后端,windows,gui,iced
3、對比勾選細節(jié)
[Rust GUI]0.10.0版本iced代碼示例 - progress_bar,rust,開發(fā)語言,后端,windows,gui,iced
4、點擊安裝
5、安裝完成
[Rust GUI]0.10.0版本iced代碼示例 - progress_bar,rust,開發(fā)語言,后端,windows,gui,iced
6、關閉Visual Studio Installer
7、重啟電腦

2、安裝Rust

訪問Rust官網下載 RUSTUP-INIT.EXE(64位)
在 PowerShell 中運行$ENV:RUSTUP_DIST_SERVER='https://mirrors.ustc.edu.cn/rust-static';$ENV:RUSTUP_UPDATE_ROOT='https://mirrors.ustc.edu.cn/rust-static/rustup';.\rustup-init.exe,輸入1并回車
[Rust GUI]0.10.0版本iced代碼示例 - progress_bar,rust,開發(fā)語言,后端,windows,gui,iced

3、設置cargo鏡像

運行powershell -command ii (where.exe cargo).substring(0,(where.exe cargo).Length-'\bin\cargo.exe'.Length)
.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"

4、安裝VSCode

訪問這個??鏈接:如何下載安裝VSCode
安裝插件:簡體中文、rust-analyzer(中英雙語版)

5、下載并安裝字體文件

下載思源黑體:下載鏈接
雙擊 SourceHanSansSC-Regular.otf 文件,點擊安裝

0、編程

1、使用cargo創(chuàng)建項目

運行cargo new iced-progress_bar;cd iced-progress_bar

2、添加板條箱iced0.10.0

運行cargo add iced@0.10.0

3、使用VSCode打開項目

運行code .
選中.\iced-progress_bar\src\main.rs激活插件,等待插件加載完畢。

4、運行

運行cargo run,等待編譯完成,正常輸出Hello, world!
[Rust GUI]0.10.0版本iced代碼示例 - progress_bar,rust,開發(fā)語言,后端,windows,gui,iced

5、編輯.\iced-progress_bar\src\main.rs

5.1、use

編輯第一部分,使用use關鍵字添加板條箱iced

// https://blog.csdn.net/qq_39124701/article/details/132662186
use iced::font::{Family, Weight};
use iced::widget::{button, column, progress_bar, slider, text};
use iced::{window, Element, Font, Sandbox, Settings};

5.2、Progress

編輯第二部分,添加一個結構體

#[derive(Default)]
struct Progress {
    value: f32,
}

5.3、Message

編輯第二部分,添加一個枚舉

#[derive(Debug, Clone, Copy)]
enum Message {
    SliderChanged(f32),
    RunCommand,
}

[Rust GUI]0.10.0版本iced代碼示例 - progress_bar,rust,開發(fā)語言,后端,windows,gui,iced

5.4、impl

5.4.1、編輯第三部分,定義方法

impl Sandbox for Progress {}

5.4.2、鼠標選中該行代碼,點擊燈泡圖標,選擇Implement missing members并保存
[Rust GUI]0.10.0版本iced代碼示例 - progress_bar,rust,開發(fā)語言,后端,windows,gui,iced
5.4.3、將會自動生成如下代碼

impl Sandbox for Progress {
    type Message;

    fn new() -> Self {
        todo!()
    }

    fn title(&self) -> String {
        todo!()
    }

    fn update(&mut self, message: Self::Message) {
        todo!()
    }

    fn view(&self) -> Element<'_, Self::Message> {
        todo!()
    }
}

5.4.4、type Message
type Message;改為type Message = Message;
5.4.5、new()

    fn new() -> Self {
        todo!()
    }

改為

    fn new() -> Self {
        Self::default()
    }

5.4.6、title()

    fn title(&self) -> String {
        todo!()
    }

改為

    fn title(&self) -> String {
        String::from("進度條 - Iced")
    }

5.4.7、update()

    fn update(&mut self, message: Self::Message) {
        todo!()
    }

改為

    fn update(&mut self, message: Message) {
        match message {
            Message::SliderChanged(x) => self.value = x,
            Message::RunCommand => {
                std::process::Command::new("cmd")
                    .args(&["/C", "start", "", "https://blog.csdn.net/qq_39124701/article/details/132662186"])
                    .spawn()
                    .expect("Failed to open URL");
            }
        }
    }

5.4.8、view()

    fn view(&self) -> Element<'_, Self::Message> {
        todo!()
    }

改為

    fn view(&self) -> Element<Message> {
        // https://blog.csdn.net/qq_39124701/article/details/132662186
        column![
            text(self.value).size(50),
            progress_bar(0.0..=100.0, self.value),
            slider(0.0..=100.0, self.value, Message::SliderChanged).step(0.01),
            button("重置為零").on_press(Message::SliderChanged(0.0)),
            button("作者:CSDN 三巧").on_press(Message::RunCommand),
        ]
        .padding(20)
        .spacing(5)
        .into()
    }

5.5、main

fn main() {
    println!("Hello, world!");
}

改為

pub fn main() -> iced::Result {
    Progress::run(Settings {
        window: window::Settings {
            size: (500, 500),
            ..Default::default()
        },
        default_font: Font {
            family: Family::Name("思源黑體"),
            weight: Weight::Normal,
            ..Default::default()
        },
        ..Default::default()
    })
}

6、運行

運行cargo run,等待編譯完成,顯示窗口
[Rust GUI]0.10.0版本iced代碼示例 - progress_bar,rust,開發(fā)語言,后端,windows,gui,iced
滑動滑塊,數字變化,進度條變化
點擊重置為零按鈕,數字歸零,進度條歸零

7、構建

cargo build
生成位置:.\iced-progress_bar\target\debug\iced-progress_bar.exe

8、exe運行有黑框?

編輯.\iced-progress_bar\src\main.rs,在第一行添加#![windows_subsystem = "windows"]后重新構建即可

9、其他

iced官網
crates.io中的iced
Github上的iced



[Rust GUI]0.10.0版本iced代碼示例 - progress_bar,rust,開發(fā)語言,后端,windows,gui,iced文章來源地址http://www.zghlxwxcb.cn/news/detail-701056.html

到了這里,關于[Rust GUI]0.10.0版本iced代碼示例 - progress_bar的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Rust UI開發(fā)(四):iced中如何添加菜單欄(串口調試助手)

    Rust UI開發(fā)(四):iced中如何添加菜單欄(串口調試助手)

    注:此文適合于對rust有一些了解的朋友 iced是一個跨平臺的GUI庫,用于為rust語言程序構建UI界面。 這是一個系列博文,本文是第四篇,前三篇鏈接: 1、Rust UI開發(fā)(一):使用iced構建UI時,如何在界面顯示中文字符 2、Rust UI開發(fā)(二):iced中如何為窗口添加icon圖標 3、Rust

    2024年02月03日
    瀏覽(40)
  • Rust UI開發(fā)(二):iced中如何為窗口添加icon圖標

    Rust UI開發(fā)(二):iced中如何為窗口添加icon圖標

    注:此文適合于對rust有一些了解的朋友 iced是一個跨平臺的GUI庫,用于為rust語言程序構建UI界面。 想要了解如何構建簡單窗口的可以看本系列的第一篇: Rust UI開發(fā):使用iced構建UI時,如何在界面顯示中文字符 本篇是系列第二篇,主要解決一個問題,就是為窗口添加圖標ic

    2024年02月04日
    瀏覽(17)
  • Rust UI開發(fā)(一):使用iced構建UI時,如何在界面顯示中文字符

    Rust UI開發(fā)(一):使用iced構建UI時,如何在界面顯示中文字符

    注:此文適合于對rust有一些了解的朋友 iced是一個跨平臺的GUI庫,用于為rust語言程序構建UI界面。 ? iced的基本邏輯是: UI交互產生消息message,message傳遞給后臺的update,在這個函數中編寫邏輯,然后通過View函數更新UI。 Take the result of our view logic and layout its widgets. 獲取視圖邏

    2024年02月03日
    瀏覽(52)
  • Rust UI開發(fā)(三):iced如何打開圖片(對話框)并在窗口顯示圖片?

    Rust UI開發(fā)(三):iced如何打開圖片(對話框)并在窗口顯示圖片?

    注:此文適合于對rust有一些了解的朋友 iced是一個跨平臺的GUI庫,用于為rust語言程序構建UI界面。 這是一個系列博文,本文是第三篇,前兩篇的鏈接: 1、Rust UI開發(fā)(一):使用iced構建UI時,如何在界面顯示中文字符 2、Rust UI開發(fā)(二):iced中如何為窗口添加icon圖標 本篇是

    2024年02月04日
    瀏覽(55)
  • 聽GPT 講Rust源代碼--library/std(10)

    聽GPT 講Rust源代碼--library/std(10)

    題圖來自 Rust Development Roadmap [1] 在Rust源代碼的 rust/library/std/src/sys/windows/c.rs 文件中,主要定義了Rust對于Windows操作系統的系統調用接口。該文件定義了各種Windows特定的結構體、枚舉和常量,以支持與操作系統的交互。 以下是對每個結構體的詳細介紹: ip_mreq : 該結構體用于表

    2024年02月06日
    瀏覽(53)
  • 10天玩轉Python第9天:python 面向對象 全面詳解與代碼示例

    10天玩轉Python第9天:python 面向對象 全面詳解與代碼示例

    今日內容 異常 模塊和包 導入模塊(導包) if __name__ == \\\"__main__\\\": Unitest 框架的學習 了解, 基本組成 異常傳遞[了解] 導入模塊的語法 方式一 方式二 方式三 [了解] 基本不用 模塊的查找順序 __name__ ?的作用 代碼練習 包(package) 介紹 框架 什么是 UnitTest 框架? 為什么使用 UnitTest 框架

    2024年02月04日
    瀏覽(41)
  • 10天玩轉Python第2天:python判斷語句基礎示例全面詳解與代碼練習

    10天玩轉Python第2天:python判斷語句基礎示例全面詳解與代碼練習

    ? 數據類型轉換: 數據本來的類型不是我們計算使用想要的類型 int() 將其他類型轉換為 int 類型(小數, 整數類型的字符串) float() 將其他類型轉換為 float 類型(整數, 數字類型的字符串) str() 將其他類型轉換為 str 類型(任意類型)? 函數: 作用 語法 type(變量) 可以獲取變量的數據

    2024年02月04日
    瀏覽(44)
  • 10天玩轉Python第6天:python 函數和面向對象基礎 全面詳解與代碼示例

    10天玩轉Python第6天:python 函數和面向對象基礎 全面詳解與代碼示例

    不定長參數補充-函數調用時的拆包 匿名函數 語法 代碼 練習 匿名函數作為函數的參數 - 列表中的字典排序 字符串比大小 基本的介紹 面向過程 關注的是 具體步驟的實現, 所有的功能都自己書寫 親力親為 定義一個個函數, 最終按照順序調用函數 面向對象 關注的是結果, 誰

    2024年02月04日
    瀏覽(24)
  • 【一起學Rust | 框架篇 | Frui框架】rust一個對開發(fā)者友好的GUI框架——Frui

    【一起學Rust | 框架篇 | Frui框架】rust一個對開發(fā)者友好的GUI框架——Frui

    本次內容接上回《rust原生跨平臺GUI框架——iced》,最近突然涌現出多個Rust的UI框架,真實令人興奮,同時也突出了Rust的勃然生機,我將盡量為大家介紹Rust領域的UI框架,帶大家體驗Rust領域的好玩意兒。 Frui是一個對開發(fā)者相當友好的UI框架,它使得開發(fā)者構建用戶界面變得

    2024年02月01日
    瀏覽(19)
  • win10中 hyper-v 中搭建 docker 快速搭建一個thinkphp6 的項目 swoole 環(huán)境 websocket 示例代碼

    win10中 hyper-v 中搭建 docker 快速搭建一個thinkphp6 的項目 swoole 環(huán)境 websocket 示例代碼

    1. 先安裝docker? 和docker-composer? ? 1.1安裝docker 直接使用快捷一鍵安裝 ? 1.2等待一分鐘docker安裝完成啟動docker? ? ?1.3 測試docker 安裝 和鏡像加速 ? ?直接參考文章安裝和調試??CentOS 安裝 Docker | Docker 從入門到實踐 2.安裝php 運行環(huán)境 ? 2.1? ?選用最簡單 的擁有 php-fpm 和 ngin

    2024年02月05日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包