【Wails】高大上的半透明“冰霜” 效果

14 篇文章 0 订阅
3 篇文章 1 订阅

Wails使用半透明“冰霜”效果

首先初始化一个模板项目
wails init -n transparent -t vue

示例仓库https://github.com/skypiaoyizhe/wails-demo

然后把项目跑起来
在这里插入图片描述

修改应用配置

main.go
将背景色改为黑色,透明度0,也就是没有背景。
BackgroundColour: &options.RGBA{R: 0, G: 0, B: 0, A: 0},

package main

import (
	"embed"

	"github.com/wailsapp/wails/v2"
	"github.com/wailsapp/wails/v2/pkg/options"
)

//go:embed frontend/dist
var assets embed.FS

func main() {
	// Create an instance of the app structure
	app := NewApp()

	// Create application with options
	err := wails.Run(&options.App{
		Title:            "transparent",
		Width:            1024,
		Height:           768,
		Assets:           assets,
		BackgroundColour: &options.RGBA{R: 0, G: 0, B: 0, A: 0},
		OnStartup:        app.startup,
		Bind: []interface{}{
			app,
		},
	})

	if err != nil {
		println("Error:", err.Error())
	}
}

修改网页部分

frontend/src/style.css 删除所有的background样式

html {
    text-align: center;
}

body {
    margin: 0;
    color: white;
    font-family: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto",
    "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
    sans-serif;
}

@font-face {
    font-family: "Nunito";
    font-style: normal;
    font-weight: 400;
    src: local(""),
    url("assets/fonts/nunito-v16-latin-regular.woff2") format("woff2");
}

#app {
    height: 100vh;
    text-align: center;
}

然后就能看见界面变成了
在这里插入图片描述
继续修改main.go
引入包,修改window下的配置

"github.com/wailsapp/wails/v2/pkg/options/windows"

添加参数

Windows: &windows.Options{
			WebviewIsTransparent:              true,// 网页透明
			WindowIsTranslucent:               true,// 窗口透明
			DisableWindowIcon:                 false,
			DisableFramelessWindowDecorations: false,
			WebviewUserDataPath:               "",
			Theme:                             windows.SystemDefault,
			CustomTheme: &windows.ThemeSettings{
				DarkModeTitleBar:   windows.RGB(20, 20, 20),
				DarkModeTitleText:  windows.RGB(200, 200, 200),
				DarkModeBorder:     windows.RGB(20, 0, 20),
				LightModeTitleBar:  windows.RGB(200, 200, 200),
				LightModeTitleText: windows.RGB(20, 20, 20),
				LightModeBorder:    windows.RGB(200, 200, 200),
			},
		},

完整main.go

package main

import (
	"embed"
	"github.com/wailsapp/wails/v2/pkg/options/windows"

	"github.com/wailsapp/wails/v2"
	"github.com/wailsapp/wails/v2/pkg/options"
)

//go:embed frontend/dist
var assets embed.FS

func main() {
	// Create an instance of the app structure
	app := NewApp()

	// Create application with options
	err := wails.Run(&options.App{
		Title:            "transparent",
		Width:            1024,
		Height:           768,
		Assets:           assets,
		BackgroundColour: &options.RGBA{R: 0, G: 0, B: 0, A: 0},
		OnStartup:        app.startup,
		Bind: []interface{}{
			app,
		},
		Windows: &windows.Options{
			WebviewIsTransparent:              true,
			WindowIsTranslucent:               true,
			DisableWindowIcon:                 false,
			DisableFramelessWindowDecorations: false,
			WebviewUserDataPath:               "",
			Theme:                             windows.SystemDefault,
			CustomTheme: &windows.ThemeSettings{
				DarkModeTitleBar:   windows.RGB(20, 20, 20),
				DarkModeTitleText:  windows.RGB(200, 200, 200),
				DarkModeBorder:     windows.RGB(20, 0, 20),
				LightModeTitleBar:  windows.RGB(200, 200, 200),
				LightModeTitleText: windows.RGB(20, 20, 20),
				LightModeBorder:    windows.RGB(200, 200, 200),
			},
		},
	})

	if err != nil {
		println("Error:", err.Error())
	}
}

运行效果
在这里插入图片描述
此时窗口是透明了,冰霜效果也有了,但是窗口名称还是有点违和感,继续修改。
添加无边框

Frameless: true,

在这里插入图片描述
这样看起来就舒服多了,但是这样就不能拖动窗口和关闭了,就需要用到wail自带的一些方法和参数配置。

退出程序

window.runtime.Quit();

界面可以拖动,添加data-wails-drag
界面不可以拖动部分,添加data-wails-no-drag

完整代码

<script setup>
import HelloWorld from './components/HelloWorld.vue'
const handleQuit = () => {
  window.runtime.Quit();
}
</script>

<template>
  <div data-wails-drag>
    拖动
  </div>
  <div data-wails-no-drag>
    拖不动
  </div>
  <button @click="handleQuit">关闭</button>
  <img id="logo" alt="Wails logo" src="./assets/images/logo-universal.png"/>
  <HelloWorld/>
</template>

<style>
#logo {
  display: block;
  width: 50%;
  height: 50%;
  margin: auto;
  padding: 10% 0 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-origin: content-box;
}
</style>

运行效果
在这里插入图片描述
此时拖动部分可以拖动窗口移动位置,关闭可以关闭窗口,退出程序。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Wails是一个用于构建跨平台桌面应用程序的开发工具包,它结合了Go语言和Web前端技术。通过使用Wails,您可以使用Go语言编写后端逻辑,并使用Web前端技术(如HTML、CSS和JavaScript)构建用户界面。 以下是使用Wails + Go的一些基本步骤: 1. 安装Wails CLI:您可以使用以下命令安装Wails CLI环境检测工具: ```shell go install github.com/wailsapp/wails/v2/cmd/wails@latest ``` 2. 创建新的Wails项目:使用以下命令创建一个新的Wails项目: ```shell wails init <project_name> ``` 这将在当前目录下创建一个新的Wails项目。 3. 编写Go后端代码:在Wails项目的`main.go`文件中,您可以编写Go语言的后端逻辑。您可以使用Go的强大功能来处理数据、执行计算等。 4. 构建前端界面:在Wails项目的`frontend`目录中,您可以使用Web前端技术(如HTML、CSS和JavaScript)构建用户界面。您可以使用任何您熟悉的前端框架或库,例如ant-design-vue。 5. 运行应用程序:使用以下命令在开发模式下运行应用程序: ```shell wails serve ``` 这将启动Wails开发服务器,并在浏览器中打开应用程序。 6. 打包应用程序:一旦您完成了应用程序的开发,您可以使用以下命令将其打包为可执行文件: ```shell wails build ``` 这将根据您的操作系统生成相应的可执行文件。 请注意,以上步骤只是Wails + Go的基本示例。您可以根据自己的需求和喜好进行更多的定制和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值