tauri如何实现窗口拖动,自定义标题栏


一、tauri是什么?

Tauri是一个开源框架,用于创建跨平台的桌面应用程序。它使用Rust编程语言,并结合了现有的Web技术,如HTML、CSS和JavaScript。Tauri旨在提供一个快速、可靠和安全的方式来构建本地应用程序,同时保持Web开发的灵活性和易用性。它支持多个操作系统和架构,包括Windows、macOS和Linux。Tauri的目标是帮助开发者轻松创建高效的桌面应用程序,并提供一个统一的开发体验,使得跨平台开发变得更加简单和方便。

二、封装好的标题栏,引用修改即可使用

我这里前端使用的是vue框架,代码如下

<template>
  <div data-tauri-drag-region class="titlebar">
    <slot class="titlebar-title" name="title"></slot>
    <div class="titlebar-menu">
      <slot name="menu"></slot>
    </div>
    <div class="titlebar-right">
      <div class="titlebar-button" id="titlebar-minimize" @click="appWindow.minimize()">
        <MinusOutlined style="color: #FFF;font-size: 13px"/>
      </div>
      <div class="titlebar-button" id="titlebar-maximize" @click="appWindow.toggleMaximize()"> 
        <BorderOutlined style="color: #FFF;font-size: 13px"/>
      </div>
      <div class="titlebar-button" id="titlebar-close" @click="appWindow.close()">
        <CloseOutlined style="color: #FFF;font-size: 13px"/>
      </div>
    </div>
  </div>
</template>
<script setup lang="ts">
import { appWindow } from '@tauri-apps/api/window'
import { MinusOutlined,BorderOutlined,CloseOutlined } from "@ant-design/icons-vue"; 
</script>
<style scoped>
.titlebar-right{
  position: absolute; /* 设置为绝对定位 */
  top: 0px; /* 顶部距离为0 */
  right: 0px; /* 右侧距离为0 */
}
.titlebar-menu{
  display: flex;
  align-items: center;
}
.titlebar {
  height: 46px;
  width: 100%;
  background: #000000;
  display: flex;
  /* justify-content: space-between; */
  flex-direction: row;
  align-items: center;
  position: relative;
}
.titlebar-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 46px;
}
.titlebar-button:hover {
  background: #432f55;
}
.titlebar-title{
  display: flex;
  align-items: center;
  flex-direction: row;
  gap: 7px;
  margin-left: 7px;
}
</style>

这里我的窗口右上角图标使用的是ant-design-vue框架带的。使用的时候只需要引入就可以,可以自行修改

      <Titlebar>
      </Titlebar>

三 相关配置实现细节

修改tauri.conf.json配置文件,赋予相关权限,并关闭系统自带标题栏

"tauri": {
  "allowList": {
    ...
    "window": {
        "all": false,
        "close": true,
        "hide": true,
        "show": true,
        "maximize": true,
        "minimize": true,
        "unmaximize": true,
        "unminimize": true,
        "startDragging": true
      }
  }
  ...

  "windows": [
    {
      "decorations": false,
      ...
    }
  ]
}

实现窗口拖动

在这里插入图片描述
加上这个标签即可实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值