96SEO 2026-02-20 05:50 4
本文是rust语言下的GUI库tauri来创建一个窗口的简单演示主要说明一下使用tauri这个库如何创建GUI以及如何添加部件、如何编写逻辑、如何修改风格等所以这也是一个专栏将包括tauri库的多个方面。

本文是tauri库系列博文的第一篇主要是简单实现一个窗口程序并成功运行当然这是基于官方的示例事实上官方给出的上手例程非常详细不过本文在官方示例的基础上将会做一些修改和延伸。
首先我们来看官方示例tauri官方给出了一个新手教程教导你如何快速创建并显示一个窗口当然这是最简单的窗口不过这个样例基本上涉及了tauri的整个原理。
首先tauri是前后端结合的一种实现它的页面创建、显示是使用的前端语言你可以使用当前的任意前端语言来编写页面布局比如
我对前端编程不是很熟悉因此选择了第一个即原生的javascript结合html和css来编写页面。
首先在你的项目文件夹下创建一个新文件夹可以命名为ui然后在ui文件夹下新建一个html文件里面添加一些基本的内容
/html以上内容相信懂前端的朋友会很熟悉如果你用浏览器运行这段代码其显示如下
所以你应该了解了tauri所谓的GUI其实就是和网页显示是一样的只是封装成了窗口程序。
这就是前端和后端的结合前端使用的是html和js后端呢使用的则是rust。
好了我们按照例程新建了html文件暂且先放着然后我们要在项目路径下创建rust文件。
tauri-cli等待安装完成然后来创建一个tauri下的rust项目
init当你运行这个指令时tauri会让你“回答”几个问题我们按照例程所示一一填写即可。
2、窗口标题就是生成的窗口的title你可以输入一个自定义名称后面也可以再修改
3、前端页面文件所在位置输入你之前创建的ui文件夹路径可以和官方一样使用…/ui这个路径也可以根据你自己创建的文件夹路径来填写
以上6个问题填前4个就行5、6暂时不填因为涉及后期使用其他命令来开发前端的程序但暂时你可能还不会或者不需要这样复杂的命令。
回答完问题后tauri会自动创建一个包含rust代码的文件夹通常文件夹名称默认为src-tauri其目录层级如下
#![cfg_attr(not(debug_assertions),
tauri::Builder::default().run(tauri::generate_context!()).expect(error
}main函数是rust程序的进入点tauri在此创建窗口的初始化程序。
会得到一个和之前的网页所示一样画面的窗口画面。
首次编译时间可能会比较长
以上是最简单的示例程序基本上窗口是用html布局实现的还没有涉及rust代码下面看一下如何在html中调用rust函数来实现某些功能比如实现文本内容的更改。
}这里greet是rust中的普通函数但是为其添加了#[tauri::command]宏这样一来greet函数就可以与js进行交互了。
但是还需要让tauri知道这个函数所以需要注册它
{tauri::Builder::default().invoke_handler(tauri::generate_handler![greet]).run(tauri::generate_context!()).expect(error
}如上在原先的main函数里增加了一条.invoke_handler()函数配合Generate_handler![]宏来注册greet函数。
这样就可以在前端代码里调用rust的函数功能了。
/titleDocument/title/headbodyh1
/html到此都是官方提供的代码对于前端的API调用我不是很熟悉但是我也不用管它直接照做就行目的是引用rust的函数在上面的代码里invoke后面的参数第一个greet表示函数名第二个是函数的参数名
}invoke返回的是一个Pormise据我粗浅的了解Promise是一个异步操作但这里并没有使用异步关键词而是使用then来取得反馈response关于前端目前了解尚不多所以此处我只关心其结果根据官方示例response就是函数greet运行后的输出在此处的示例代码中输出应该是
然后将HelloWorld传给当前页面的id为header的标签即修改标签的内容为
但是需要注意的是如果要rust中的注册函数起作用需要修改一下tauri.conf.json文件的内容
../tau-ui,withGlobalTauri:true}如上在这个json文件里为build选项添加withGlobalTauri参数并将其设为true。
tauri-apps/api包但在目前的初学者教程里不涉及这么复杂的内容。
以上实现的是官方的示例程序下面我们来作一下扩展我们为页面添加一个按钮以及一条标签然后点击按钮后标签显示相应的内容标签的内容由rust的函数提供。
sendstring()-String{来自rust的字符串.to_string()
{tauri::Builder::default().invoke_handler(tauri::generate_handler![greet,sendstring]).run(tauri::generate_context!()).expect(error
idp1hello,rust/p然后为按钮的点击事件绑定一个脚本函数
onclickrecvstring()按钮1/buttonfunction
elemdocument.getElementById(p1);invoke(sendstring,{}).then((response){elem.innerHTMLresponse;})}然后再次运行程序
综上tauri的使用体验如果熟悉前端开发我觉得还是不错的因为虽然其后端使用的是rust但是这仅在你的js无法满足开发的时候我们就可以利用rust的强大功能来编写需要的函数但是如果你要制作比较简单的程序那么仅是js就完全满足开发了就和开发网页程序是一样的只是tauri封装成了桌面程序。
tauri的优点就是页面布局感觉要方便很多但目前我还没有去测试tauri的通讯比如websocket等不过从体验上来说tauri在github上排名rust
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback