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

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!())

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

相关文章:

  • Web入门知识补充
  • 关闭超时订单和七天自动确认收货+RabbitMQ规范
  • mysql_符合查询
  • 深度学习驱动下的字符识别:挑战与创新
  • AI大模型学习(三): LangChain(二)
  • 在Django中安装、配置、使用CKEditor5,并将CKEditor5录入的文章展现出来,实现一个简单博客网站的功能
  • java开发工程师面试技巧
  • M系列 Mac如何安装CentOS7虚拟机(附安装包下载链接)
  • AI汽车新风向:「死磕」AI底盘,引爆线控底盘新增长拐点
  • 热管理系统:新能源汽车的 “温度管家”
  • 黑马点评_商品信息缓存模块
  • 使用vue-office报错TypeError: ft.createElementVNode is not a function
  • CSS 盒子模型:网页布局的基石
  • win11系统无法打开软件_组策略无法打开_gpedit.msc不生效_为了对电脑进行保护,已经阻止此应用---Windows工作笔记057
  • 七层模型、局域网与网络技术(高软26)
  • 谈谈 ES 6.8 到 7.10 的功能变迁(1)- 性能优化篇
  • 深度学习驱动的车牌识别:技术演进与未来挑战
  • Nginx Embedded Variables 嵌入式变量解析(2)
  • JavaWeb
  • iOS开发 网络安全
  • 六大车企一季报:比亚迪近92亿净利稳居第一,多家车企营收下滑
  • 指挥家高健:东方市民音乐会“高贵不贵”,我愿意常来
  • 董卓的前半生:边荒之地的工具人
  • 宋涛就许历农逝世向其家属致唁电
  • 习近平对贵州毕节市黔西市游船倾覆事故作出重要指示
  • 今晚上海地铁1、2、10、17号线加开定点班车至次日0点