当前位置: 首页 > article >正文

tauri2实现监听记住窗口大小变化,重启回复之前的窗口大小

要想实现记住窗口大小的功能,整体逻辑就是要监听窗口大小变化,将窗口大小保存下来,重启之后,读取保存的大小,然后恢复。这里可以使用rust层实现,也可以在前端实现。我这里就纯rust层实现了。

监听窗口变化

使用tauri-plugin-store这个插件,插件地址:plugins-workspace/plugins/store at v2 · tauri-apps/plugins-workspace · GitHub,

安装插件:

然后导入插件:

开始监听窗口变化逻辑:

逻辑代码:

        .setup(|app| {
            let window = app.get_webview_window("main").unwrap();
            // This loads the store from disk
            let store = app.store("app_data.json")?;
            let window_size: Option<serde_json::Value> = store.get("window_size");
            println!("windows_size: {:?}", window_size);
            if let Some(window_size) = window_size {
                let size = window_size.as_object().unwrap();
                let width = size["width"].as_f64().unwrap();
                let height = size["height"].as_f64().unwrap();
                window
                    .set_size(tauri::PhysicalSize::new(width, height))
                    .unwrap();
            }

            // 监听窗口大小变化
            window.on_window_event(move |event| {
                if let WindowEvent::Resized(size) = event {
                    println!("window_size: {:?}", size);
                    let _ = store.set(
                        "window_size",
                        json!({
                            "width": size.width,
                            "height": size.height
                        }),
                    );
                }
            });

            Ok(())
        })
        .run(tauri::generate_context!())

 然后启动软件,重新调整大小,再次启动,就可以看到效果了:


http://www.kler.cn/a/557860.html

相关文章:

  • Git 工作流程
  • 广东双9研0,目标腾讯,读研三年如何规划学习?
  • java 环境 redis信创后整合jedis
  • 视频大小怎么计算?视频码率是什么,构成视频清晰度的核心要素!
  • Pytorch实现之结合SE注意力和多种损失的特征金字塔架构GAN的图像去模糊方法
  • js如何直接下载文件流
  • #渗透测试#批量漏洞挖掘#Progress Software Flowmon命令执行漏洞(CVE-2024-2389)
  • STM32MP157A单片机驱动--控制拓展版的灯实现流水效果
  • 从函数到神经网络
  • Elasticsearch常用的查询条件
  • [Android]使用WorkManager循环执行任务
  • 【开放词汇分割】Image Segmentation Using Text and Image Prompts
  • 设计心得——解耦的实现技术
  • 打开Firefox自动打开hao360.hjttif.com标签解决方案
  • java Web
  • 【论文解析】Fast prediction mode selection and CU partition for HEVC intra coding
  • 【漫话机器学习系列】100.L2 范数(L2 Norm,欧几里得范数)
  • .NET MVC实现电影票管理
  • 电商API安全防护:JWT令牌与XSS防御实战
  • android 快速定位当前页面