当前位置:首页 > 技术文章 > 正文内容

Golang 跨平台轻量GUI界面对比:Wails vs Fyne vs Webview

zonemu2个月前 (08-19)技术文章26

为什么要说是轻量GUI?因为不想用 Electron 这样的庞然大物。下面的这些 GUI 编译出来最多也就 50M,压缩后只有 20M,还算可以。

Wails:Github 4.2k

C/S模式,一个后端服务,一个前端页面作为UI。前端可以使用 Vue / React / Angular,可以说很适合偏前端的选手。

但是前端页面用系统内置浏览器进行渲染。这就导致一个问题,目前 Windows 下只能使用 IE11。而且据我测试,在 Windows 10 编译不出 exe 文件来。

Fyne:Github 13.8k

非 C/S 模式,UI都是由 Golang 写出来的,界面很漂亮,代码也很简单。

比如写个这样的 hello world 界面:

需要的代码仅仅是:

package main

import (
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/container"
	"fyne.io/fyne/v2/widget"
)

func main() {
	a := app.New()
	w := a.NewWindow("Hello")

	hello := widget.NewLabel("Hello Fyne!")
	w.SetContent(container.NewVBox(
		hello,
		widget.NewButton("Hi!", func() {
			hello.SetText("Welcome :)")
		}),
	))

	w.ShowAndRun()
}

整个编码过程相对简单,很容易就可以写出这样的界面来:

当然,你得先解决中文字符的问题,否则会这样:

以及这样:

注意一个点,Fyne 编译出来的程序在 Windows Server 上跑不起来,因为显卡驱动永远是 OpenGL 1.1 且无法升级,而 Fyne 需要的是 OpenGL 2.0 以上。

Webview:Github 8.8k

貌似也是基于系统浏览器,但由于有 fyne 了,我就没试了,主要是首页的 C/C++ 代码让人看得头大,虽然不知道有没有关联。但我觉得,人家既然写出来了,说明肯定会用上的……

最后,记得给我点个赞~

相关文章

Win+Ubuntu缝合怪:第三方开发者推出“Wubuntu”Linux发行版

IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Win...

在html5页面中如何使用vue3(html页面引入vue组件)

今天是2021.7.14,是个好日子.好久没发布文章了.今天发布下如何在在html页面中使用vue3.义县游学电子科技一直以技术文章为主.以下是h5的页面源码:<html><scri...

2025最值得入手的AI数据分析工具:奥威BI深度评测报告

一、引言在数字化时代,数据已成为企业决策的重要依据。然而,海量数据的处理与分析往往耗费大量时间与精力。为此,AI数据分析工具应运而生,其中奥威BI作为一款备受瞩目的产品,凭借其强大的功能与智能特性,成...

数组、去重、排序、合并、过滤、删除

ES6数字去重 Array.from(new Set([1,2,3,3,4,4])) //[1,2,3,4] [...new Set([1,2,3,3,4,4])] //[1,2,3,4]2...

解锁无限潜力,在没有数组溢出情况下,掌握Filter公式正确用法

嗨,朋友们!今天我要和大家分享一些关于Filter公式的知识,这将帮助你们解决没有数组溢出情况下的问题。你是否曾经在处理数据时遇到过没有数组溢出的情况?不用担心,因为我将教你一些正确使用Filter公...

资深程序员是如何工作的?(资深程序员是什么意思)

最近在B站看到一个老外分享的一个资深程序员工作心得,他讲得很好,总结分享一下:1. 不懂就查资料,不需要面面俱到要点:编程不是记忆语言,而是理解模式和查找答案。资深开发者也常谷歌搜索。 重要性:消除“...