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

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

這篇具有很好參考價值的文章主要介紹了Rust UI開發(fā)(三):iced如何打開圖片(對話框)并在窗口顯示圖片?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

注:此文適合于對rust有一些了解的朋友
iced是一個跨平臺的GUI庫,用于為rust語言程序構建UI界面。
rust 窗口應用,Rust窗口開發(fā)實例,rust,ui,開發(fā)語言

這是一個系列博文,本文是第三篇,前兩篇的鏈接:
1、Rust UI開發(fā)(一):使用iced構建UI時,如何在界面顯示中文字符
2、Rust UI開發(fā)(二):iced中如何為窗口添加icon圖標

本篇是系列第三篇,主要關注如何在窗口上顯示圖片,要在窗口顯示一張圖片,基本上需要解決兩個問題,一是圖片文件導入,二是圖片文件顯示。這兩個功能對于其他成熟語言都不是問題,文件對話框和圖片渲染都不是難事,但iced是缺少對話框部件的。

所以,就要借助于第三方庫,下面我們將針對這兩個方面做說明。
實際窗口效果預覽:
rust 窗口應用,Rust窗口開發(fā)實例,rust,ui,開發(fā)語言

一 文件對話框

至少目前為止(iced=0.10)iced中沒有集成對話框功能,包括文件對話框、字體、顏色、消息等對話框都沒有,但我看到其他支持rust的GUI庫如egui、nwg(native-window-gui)等都是有對話框的,當然egui中是用rfd庫來實現(xiàn)的。
所以,在本篇中,我們也是利用rfd來實現(xiàn)文件對話框功能。
rust 窗口應用,Rust窗口開發(fā)實例,rust,ui,開發(fā)語言
rfd是Rusty File Dialogs的簡寫,是跨平臺的rust庫,提供打開/保存對話框的功能。
rfd的官方代碼:

use rfd::FileDialog;

let files = FileDialog::new()
    .add_filter("text", &["txt", "rs"])
    .add_filter("rust", &["rs", "toml"])
    .set_directory("/")
    .pick_file();

使用起來也很簡單,在你的項目的Cargo.toml中添加依賴:

rfd="0.12.1"

然后在main.rs中導入:

use rfd::FileDialog;

需要注意的是,F(xiàn)ileDialog.pickfile()函數(shù)返回的是一個枚舉類型Option,里面的數(shù)據(jù)就是文件的路徑。
所以,我們可以使用Some來返回此路徑。

 if let Some(file)=FileDialog::new()
            .set_directory("/")
            .add_filter("all", &["*"])                  //添加文件過濾,all是顯示所有類型 
            .add_filter("文本文件(*txt)", &["txt", "rs"])           //只顯示文本類型
            .add_filter("圖像文件(*png*jpg*bmp)", &["png","jpg","jpeg","bmp"])          //只顯示圖像類型
            .set_title("打開圖像")
            .pick_file()
            {
   
                self.iamgepath=file.display().to_string();
            };

這樣我們打開的圖像的路徑,就賦給了self.imagepath。

二 將圖片顯示在窗口界面上

我們現(xiàn)在已經(jīng)得到了圖像的路徑,那么我們?nèi)绾螌D像顯示在窗口上呢?這里需要用到iced提供的image這個功能,它是被定義為iced_widget的一個特性,即Features。Features是Rust中的一個概念,或者是一種機制。以下是rust官方手冊關于Features的概念,大家自己理解一下。

  • Cargo “features” provide a mechanism to express conditional compilation and optional dependencies.
  • A package defines a set of named features in the [features] table of Cargo.toml, and each feature can either be enabled or disabled. Features for the package being built can be enabled on the command-line with flags such as --features. Features for dependencies can be enabled in the dependency declaration in Cargo.toml.

本篇說明一下如何使用image這個Features,在你的項目的Cargo.toml文件中,添加了iced依賴后,添加以下語句:

iced.features=["image"]

然后可以在main.rs中導入image:

use iced::widget::{
   text, button,slider,column,image,container};

另外,我們在本系列第二篇提到過一個第三方的圖像庫Image,實際上iced中處理圖像也用到了這個庫,所以我們將Image也添加到依賴中:

image="0.24.7"

為了不混亂iced的image和第三方image,我們在導入第三方image時,如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-763952.html

extern 

到了這里,關于Rust UI開發(fā)(三):iced如何打開圖片(對話框)并在窗口顯示圖片?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關文章

  • NextJS開發(fā):封裝shadcn/ui中的AlertDialog確認對話框

    shadcn/ui很靈活可以方便的自己修改class樣式,但是僅僅一個確認刪除彈窗,需要拷貝太多代碼和導入太多包,重復的代碼量太多,不利于代碼維護。所以進一步封裝以符合項目中使用。 封裝cx-alert-dialog.tsx custom-button.tsx 使用CxAlertDialog組件

    2024年02月04日
    瀏覽(21)
  • UG\NX二次開發(fā) 非模態(tài)消息對話框函數(shù) UF_UI_display_nonmodal_msg

    UG\NX二次開發(fā) 非模態(tài)消息對話框函數(shù) UF_UI_display_nonmodal_msg

    文章作者:里海 來源網(wǎng)站: https://blog.csdn.net/WangPaiFeiXingYuan ? ? ? ? uc1601函數(shù)提供了一個模態(tài)消息對話框,ufun函數(shù)中還有一個非模態(tài)消息對話框,運行一次彈出一個窗口,不點確定不消失,對話框顯示后不影響使用其他命令運行。 ????????UF_UI_display_nonmodal_msg的第二個參

    2024年02月15日
    瀏覽(18)
  • UG\NX二次開發(fā) 一種簡單的選擇對話框 UF_UI_select_with_single_dialog

    UG\NX二次開發(fā) 一種簡單的選擇對話框 UF_UI_select_with_single_dialog

    文章作者:里海 來源網(wǎng)站: https://blog.csdn.net/WangPaiFeiXingYuan ? ? ? ? UGNX二次開發(fā) 一種簡單的選擇對話框 ? ? ??

    2024年02月13日
    瀏覽(18)
  • 使用WPF 打開各種對話框

    使用WPF 打開各種對話框

    不包含任何具體操作,僅有對各種對話框的打開; 將Grid分為兩部分,內(nèi)部放兩個stackpanel,將這兩個?stackpanel分別對應Grid的1部分和2部分; ? ? ? 這里是放置了一個DockPanel控件,內(nèi)部放置了兩個StackPanel控件,一個TextBlock控件,這里需要注意的函數(shù)設置:DockPanel.Dock設置??课?/p>

    2024年02月15日
    瀏覽(20)
  • UG\NX二次開發(fā) 使用BlockUI設計對話框時,如何設置默認的開發(fā)語言?

    UG\NX二次開發(fā) 使用BlockUI設計對話框時,如何設置默認的開發(fā)語言?

    文章作者:里海 來源網(wǎng)站:王牌飛行員_里海_里海NX二次開發(fā)3000例,CC++,Qt-CSDN博客 NX二次開發(fā)使用BlockUI設計對話框時,如何設置默認的代碼語言? 依次打開“文件”-“實用工具”-“用戶默認設置”-“用戶界面”-“操作記錄”-“C++”。 ??

    2024年02月11日
    瀏覽(98)
  • JavaScript 兩種方案打開文件對話框

    JavaScript 兩種方案打開文件對話框

    在編寫項目時,難免會遇到想要用戶上傳文件的場景。文件流處理之前的第一關是打開文件對話框讓用戶選取文件,本文主要講解如何打開這個文件對話框,同時帶來了一種對于文件系統(tǒng)操作的新概念 API。 要明確一點的是文件對話框是瀏覽器的功能,開發(fā)者不能自定義文件

    2024年02月07日
    瀏覽(31)
  • PyQt5 框架搭建+實戰(zhàn)(多窗口打開,文件對話框)

    PyQt5 框架搭建+實戰(zhàn)(多窗口打開,文件對話框)

    1.Qt設計師界面創(chuàng)建主窗口 2.轉化成py文件 3.建立一個主窗口類,繼承Qwidget和Qt設計師生成的UI類 4.寫一個main函數(shù)入口,創(chuàng)建app,創(chuàng)建主窗口類實例,show(), app.exec() 我們不要在Qt設計師生成的界面上去增加我們的代碼,因為這個界面我們一直都需要修改,修改后生成新的py代碼

    2024年02月02日
    瀏覽(22)
  • MFC 給對話框添加圖片背景

    MFC 給對話框添加圖片背景

    在windows開發(fā)當中做界面的主要技術之一就是使用MFC,通常我們看到的QQ,360,暴風影音這些漂亮的界面都可以用MFC來實現(xiàn)。今天我們來說一下如何用MFC美化對話框,默認情況下,對話框的背景如下: 那么,我們?nèi)绾螌⑺谋尘白兂扇缦陆缑婺兀疫€要保留對話框的移動功能,

    2024年02月06日
    瀏覽(27)
  • Unity C# 打開windows對話框選擇文件夾或選擇文件

    unity沒有提供打開windows對話框的api,在開發(fā)種也會遇到選擇系統(tǒng)文件夾或選擇系統(tǒng)文件的需求

    2024年04月26日
    瀏覽(30)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包