一、使用WebviewWindowBuilder创建窗口
使用Rust创建新的窗口。
fn main() {
tauri::Builder::default()
.setup(move |app| {
let win_width = 800.;
let win_height = 700.;
let mut window_builder =
WebviewWindowBuilder::new(app, "main", WebviewUrl::default());
window_builder = window_builder
// 设置窗口大小
.inner_size(win_width, win_height);
let _ = window_builder.build()?;
Ok(())
})
.plugin(tauri_plugin_opener::init())
.invoke_handler(tauri::generate_handler![])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
WebviewWindowBuilder需要三个参数:
- 对App的可变引用
- label窗口的唯一标识符
- 需要打开的窗口链接,这里使用
WebviewUrl::default()
inner_size()设置窗口的像素大小
build()构建窗口,构建窗口可能会失败,这里使用?向外传递可能出现的错误
二、设置窗口磨砂背景
要让创建的窗口有磨砂背景需要使用EffectsBuilder。
fn main() {
tauri::Builder::default()
.setup(move |app| {
let win_width = 800.;
let win_height = 700.;
let effects = EffectsBuilder::new()
.effects(vec![Effect::Acrylic, Effect::Blur])
.build();
let mut window_builder =
WebviewWindowBuilder::new(app, "main", WebviewUrl::default());
window_builder = window_builder
// 设置窗口大小
.inner_size(win_width, win_height)
// 设置窗口透明背景
.transparent(true)
// 设置窗口磨砂背景
.effects(effects);
let _ = window_builder.build()?;
Ok(())
})
.plugin(tauri_plugin_opener::init())
.invoke_handler(tauri::generate_handler![])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
窗口要呈现磨砂背景必须使用transparent(true)使窗口背景透明,用EffectsBuilder构建一个effects传入effects(effects)。
effects(vec![Effect::Acrylic, Effect::Blur])传入的是一个向量,第一个向量是磨砂背景的枚举只支持win10/11,第二个枚举支持win7,当一个枚举不生效会往后生效。
如果需要使用macos的背景效果,参考:Configuration | Tauri | EffectsBuilder in tauri::window - Rust
三、使用主题切换磨砂背景主题
fn main() {
tauri::Builder::default()
.setup(move |app| {
let win_width = 800.;
let win_height = 700.;
let effects = EffectsBuilder::new()
.effects(vec![Effect::Acrylic, Effect::Blur])
.build();
let mut window_builder =
WebviewWindowBuilder::new(app, "main", WebviewUrl::default());
window_builder = window_builder
// 设置窗口大小
.inner_size(win_width, win_height)
// 设置窗口透明背景
.transparent(true)
// 设置窗口磨砂背景
.effects(effects)
// 使用黑色主题
.theme(Some(tauri::Theme::Dark));
let _ = window_builder.build()?;
Ok(())
})
.plugin(tauri_plugin_opener::init())
.invoke_handler(tauri::generate_handler![])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
磨砂背景默认是亮色主题,使用theme(Some(tauri::Theme::Dark))整体切换为暗黑主题,磨砂背景也会切换为暗色主题。
源代码地址:kit-tool/kit: Plugin-based Tools for Improving Work Efficiency. 插件化提高工作效率工具