文章目录
- webview
-
- 安装
- 基础代码
-
- 错误情况
- wails
-
- 安装
- 初始化一个项目
-
- 错误信息
- 使用arco-design(在初始化项目上修改代码)
-
- 修改窗口图标
- 多页面展示
- 添加自定义图标-iconfont
- 制作伸缩侧边栏
- 侧边栏菜单
- 在form中使用select且select联动选择
- 使用go读取本地excel文件在转json_str
- 使用go将json_str存储为excel文件
- proj4使用
webview
参考文章:https://www.bilibili.com/video/BV1Mj411s7Kj
webview地址:https://github.com/webview
系统环境:win10
go版本:1.21.6
开发软件:goland
依赖GCC
安装
go get github.com/webview/webview_go // 安装本体
go mod tidy //自动安装所有依赖
基础代码
main.go
package main
import (
_ "embed"
webview "github.com/webview/webview_go"
)
//go:embed index.html
var html string // 同时将html一并打包进入文件中
func main() {
// 窗口设立
w := webview.New(false)
w.SetTitle("测试标题")
w.SetSize(1024, 768, webview.HintNone)
// 手动写入html
// w.SetHtml(`<h1>你好</h1>
// <script>
// getName().then(msg=>{
// alert(msg)
// })
// </script>
//`)
// html内容写入
// 读取html文件
//html_file, _ := os.Open("./index.html")
//html_start, _ := html_file.Stat()
//html_size := html_start.Size()
//html_buf := make([]byte, html_size)
//html_file.Read(html_buf)
//w.SetHtml(string(html_buf))
// 使用embed绑定html文件
w.SetHtml(html)
w.Bind("getName", func() string {
w.Eval("alterName()") // 调用html中的js函数
return "测试函数"
}) // 自定义函数
w.Run()
}
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>html测试页面</title>
</head>
<body>
<h1 class="title">html页面标题</h1>
<button class="testButton">点击按钮</button>
<script>
document.querySelector(".testButton").addEventListener("click", ()=>{
getName().then(msg=>{
document.querySelector(".title").innerHTML= msg;
}) // 调取go的函数
})
function alterName(){
alert("js函数")
}
</script>
</body>
</html>
运行结果
错误情况
错误1
github.com/webview/webview_go: build constraints exclude all Go files
这个错误主要是由于没有gcc导致的。
解决方法1:
先到https://www.msys2.org/
下载MSYS2,安装完选择打开
执行如下两个命令
pacman -Syu
pacman -S git mingw-w64-x86_64-toolchain
安装过程中。有提示就选y,安装选项选择all,默认回车就可以了。然后将gcc设置到环境变量中,默认安装在C盘,则默认地址为C:\msys64\mingw64\bin
设置到环境变量path中。
具体执行过程如下:
qhdata@DESKTOP-4OK46KC MINGW64 ~
$ pacman -S git mingw-w64-x86_64-toolchain
:: Synchronizing package databases...
clangarm64 is up to date
mingw32 is up to date
mingw64 is up to date
ucrt64 is up to date
clang32 is up to date
clang64 is up to date
msys is up to date
:: There are 13 members in group mingw-w64-x86_64-toolchain:
:: Repository mingw64
1) mingw-w64-x86_64-binutils 2) mingw-w64-x86_64-crt-git 3) mingw-w64-x86_64-gcc
4) mingw-w64-x86_64-gdb 5) mingw-w64-x86_64-gdb-multiarch 6) mingw-w64-x86_64-headers-git
7) mingw-w64-x86_64-libmangle-git 8) mingw-w64-x86_64-libwinpthread-git
9) mingw-w64-x86_64-make 10) mingw-w64-x86_64-pkgconf 11) mingw-w64-x86_64-tools-git
12) mingw-w64-x86_64-winpthreads-git 13) mingw-w64-x86_64-winstorecompat-git
Enter a selection (default=all):
resolving dependencies...
looking for conflicting packages...
Packages (74) heimdal-7.8.0-4 libcbor-0.11.0-1 libfido2-1.14.0-2 mingw-w64-x86_64-bzip2-1.0.8-3
mingw-w64-x86_64-expat-2.6.2-1 mingw-w64-x86_64-gcc-libs-13.2.0-6
mingw-w64-x86_64-gettext-runtime-0.22.5-2 mingw-w64-x86_64-gmp-6.3.0-2
mingw-w64-x86_64-isl-0.26-1 mingw-w64-x86_64-libffi-3.4.6-1
mingw-w64-x86_64-libiconv-1.17-4 mingw-w64-x86_64-libsystre-1.0.1-5
mingw-w64-x86_64-libtre-git-r177.07e66d0-2 mingw-w64-x86_64-mpc-1.3.1-2
mingw-w64-x86_64-mpdecimal-4.0.0-1 mingw-w64-x86_64-mpfr-4.2.1-2
mingw-w64-x86_64-ncurses-6.4.20231217-1 mingw-w64-x86_64-openssl-3.3.0-1
mingw-w64-x86_64-python-3.11.9-1 mingw-w64-x86_64-readline-8.2.010-1
mingw-w64-x86_64-sqlite3-3.45.2-1 mingw-w64-x86_64-tcl-8.6.13-1
mingw-w64-x86_64-termcap-1.3.1-7 mingw-w64-x86_64-tk-8.6.13-1
mingw-w64-x86_64-tzdata-2024a-1 mingw-w64-x86_64-windows-default-manifest-6.4-4
mingw-w64-x86_64-xxhash-0.8.2-2 mingw-w64-x86_64-xz-5.6.1-2
mingw-w64-x86_64-zlib-1.3.1-1 mingw-w64-x86_64-zstd-1.5.6-2 openssh-9.7p1-1
perl-Authen-SASL-2.1700-1 perl-Clone-0.46-2 perl-Convert-BinHex-1.125-2
perl-Encode-Locale-1.05-2 perl-Error-0.17029-2 perl-File-Listing-6.16-1
perl-HTML-Parser-3.81-2 perl-HTML-Tagset-3.20-3 perl-HTTP-Cookies-6.11-1
perl-HTTP-Daemon-6.16-1 perl-HTTP-Date-6.06-1 perl-HTTP-Message-6.45-1
perl-HTTP-Negotiate-6.01-3 perl-IO-HTML-1.004-2 perl-IO-Socket-SSL-2.085-1
perl-IO-Stringy-2.113-2 perl-LWP-MediaTypes-6.04-2 perl-MIME-tools-5.510-1
perl-MailTools-2.21-2 perl-Net-HTTP-6.23-1 perl-Net-SMTP-SSL-1.04-2
perl-Net-SSLeay-1.92-6 perl-TermReadKey-2.38-6 perl-TimeDate-2.33-2
perl-Try-Tiny-0.31-1 perl-URI-5.21-1 perl-WWW-RobotRules-6.02-3
perl-http-cookiejar-0.014-1 perl-libwww-6.72-1 git-2.44.0-1
mingw-w64-x86_64-binutils-2.42-2 mingw-w64-x86_64-crt-git-11.0.0.r680.g257321cea-1
mingw-w64-x86_64-gcc-13.2.0-6 mingw-w64-x86_64-gdb-14.2-1
mingw-w64-x86_64-gdb-multiarch-14.2-1
mingw-w64-x86_64-headers-git-11.0.0.r680.g257321cea-1
mingw-w64-x86_64-libmangle-git-11.0.0.r680.g257321cea-1
mingw-w64-x86_64-libwinpthread-git-11.0.0.r680.g257321cea-1
mingw-w64-x86_64-make-4.4.1-2 mingw-w64-x86_64-pkgconf-1~2.2.0-1
mingw-w64-x86_64-tools-git-11.0.0.r680.g257321cea-1
mingw-w64-x86_64-winpthreads-git-11.0.0.r680.g257321cea-1
mingw-w64-x86_64-winstorecompat-git-11.0.0.r680.g257321cea-1
Total Download Size: 116.24 MiB
Total Installed Size: 884.64 MiB
:: Proceed with installation? [Y/n] y
:: Retrieving packages...
mingw-w64-x86_64-openssl-3... 7.3 MiB 3.61 MiB/s 00:02 [###############################] 100%
git-2.44.0-1-x86_64 6.5 MiB 3.18 MiB/s 00:02 [###############################] 100%
mingw-w64-x86_64-headers-g... 6.1 MiB 4.68 MiB/s 00:01 [###############################] 100%
mingw-w64-x86_64-gdb-14.2-... 4.5 MiB 5.15 MiB/s 00:01 [###############################] 100%
mingw-w64-x86_64-gdb-multi... 7.0 MiB 1287 KiB/s 00:06 [###############################] 100%
mingw-w64-x86_64-tcl-8.6.1... 2.7 MiB 4.12 MiB/s 00:01 [###############################] 100%
mingw-w64-x86_64-tk-8.6.13... 2029.2 KiB 1614 KiB/s 00:01 [###############################] 100%
mingw-w64-x86_64-ncurses-6... 1812.7 KiB 3.21 MiB/s 00:01 [###############################] 100%
mingw-w64-x86_64-sqlite3-3... 1692.5 KiB 2.55 MiB/s 00:01 [###############################] 100%
mingw-w64-x86_64-isl-0.26-... 1442.0 KiB 1454 KiB/s 00:01 [###############################] 100%
mingw-w64-x86_64-crt-git-1... 4.3 MiB 652 KiB/s 00:07 [###############################] 100%
openssh-9.7p1-1-x86_64 992.3 KiB 779 KiB/s 00:01 [###############################] 100%
mingw-w64-x86_64-gcc-libs-... 990.3 KiB 1199 KiB/s 00:01 [###############################] 100%
mingw-w64-x86_64-binutils-... 5.8 MiB 578 KiB/s 00:10 [###############################] 100%
mingw-w64-x86_64-xz-5.6.1-... 710.7 KiB 1528 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-python-3.... 23.3 MiB 1856 KiB/s 00:13 [###############################] 100%
mingw-w64-x86_64-libiconv-... 718.9 KiB 469 KiB/s 00:02 [###############################] 100%
mingw-w64-x86_64-gmp-6.3.0... 577.8 KiB 1485 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-gcc-13.2.... 32.5 MiB 2.43 MiB/s 00:13 [###############################] 100%
heimdal-7.8.0-4-x86_64 543.5 KiB 1125 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-zstd-1.5.... 635.9 KiB 945 KiB/s 00:01 [###############################] 100%
mingw-w64-x86_64-mpfr-4.2.... 535.8 KiB 1076 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-tzdata-20... 227.1 KiB 509 KiB/s 00:00 [###############################] 100%
perl-Net-SSLeay-1.92-6-x86_64 203.4 KiB 540 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-readline-... 411.0 KiB 583 KiB/s 00:01 [###############################] 100%
mingw-w64-x86_64-tools-git... 306.7 KiB 408 KiB/s 00:01 [###############################] 100%
mingw-w64-x86_64-gettext-r... 297.2 KiB 365 KiB/s 00:01 [###############################] 100%
perl-MIME-tools-5.510-1-any 183.6 KiB 540 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-expat-2.6... 162.2 KiB 476 KiB/s 00:00 [###############################] 100%
perl-IO-Socket-SSL-2.085-1-any 157.5 KiB 387 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-mpdecimal... 150.8 KiB 367 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-make-4.4.... 135.3 KiB 316 KiB/s 00:00 [###############################] 100%
perl-libwww-6.72-1-any 130.0 KiB 320 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-mpc-1.3.1... 128.7 KiB 302 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-xxhash-0.... 116.4 KiB 290 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-zlib-1.3.... 104.4 KiB 272 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-bzip2-1.0... 90.9 KiB 242 KiB/s 00:00 [###############################] 100%
perl-URI-5.21-1-any 84.8 KiB 176 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-pkgconf-1... 84.4 KiB 223 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-libtre-gi... 80.0 KiB 217 KiB/s 00:00 [###############################] 100%
perl-HTML-Parser-3.81-2-x86_64 78.2 KiB 203 KiB/s 00:00 [###############################] 100%
perl-HTTP-Message-6.45-1-any 76.9 KiB 180 KiB/s 00:00 [###############################] 100%
libfido2-1.14.0-2-x86_64 76.2 KiB 190 KiB/s 00:00 [###############################] 100%
perl-MailTools-2.21-2-any 58.6 KiB 126 KiB/s 00:00 [###############################] 100%
perl-IO-Stringy-2.113-2-any 43.5 KiB 112 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-libffi-3.... 42.6 KiB 110 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-winpthrea... 39.9 KiB 96.0 KiB/s 00:00 [###############################] 100%
perl-Authen-SASL-2.1700-1-any 38.0 KiB 110 KiB/s 00:00 [###############################] 100%
perl-TimeDate-2.33-2-any 35.6 KiB 108 KiB/s 00:00 [###############################] 100%
perl-Convert-BinHex-1.125-... 29.8 KiB 88.7 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-libwinpth... 28.6 KiB 81.4 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-termcap-1... 27.3 KiB 79.1 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-winstorec... 23.4 KiB 64.7 KiB/s 00:00 [###############################] 100%
perl-Net-HTTP-6.23-1-any 22.8 KiB 66.3 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-libmangle... 22.2 KiB 61.3 KiB/s 00:00 [###############################] 100%
perl-HTTP-Cookies-6.11-1-any 21.1 KiB 45.6 KiB/s 00:00 [###############################] 100%
perl-Error-0.17029-2-any 21.1 KiB 60.9 KiB/s 00:00 [###############################] 100%
perl-TermReadKey-2.38-6-x86_64 20.2 KiB 55.6 KiB/s 00:00 [###############################] 100%
perl-Try-Tiny-0.31-1-any 19.8 KiB 52.9 KiB/s 00:00 [###############################] 100%
perl-LWP-MediaTypes-6.04-2-any 19.1 KiB 58.5 KiB/s 00:00 [###############################] 100%
libcbor-0.11.0-1-x86_64 18.0 KiB 53.4 KiB/s 00:00 [###############################] 100%
perl-HTTP-Daemon-6.16-1-any 18.7 KiB 52.0 KiB/s 00:00 [###############################] 100%
perl-IO-HTML-1.004-2-any 14.4 KiB 44.3 KiB/s 00:00 [###############################] 100%
perl-http-cookiejar-0.014-... 13.9 KiB 35.8 KiB/s 00:00 [###############################] 100%
perl-HTTP-Negotiate-6.01-3-any 12.1 KiB 30.1 KiB/s 00:00 [###############################] 100%
perl-WWW-RobotRules-6.02-3-any 11.7 KiB 22.6 KiB/s 00:01 [###############################] 100%
perl-HTML-Tagset-3.20-3-any 10.9 KiB 22.6 KiB/s 00:00 [###############################] 100%
perl-Encode-Locale-1.05-2-any 10.7 KiB 21.9 KiB/s 00:00 [###############################] 100%
perl-File-Listing-6.16-1-any 10.3 KiB 28.7 KiB/s 00:00 [###############################] 100%
perl-Clone-0.46-2-x86_64 10.1 KiB 18.5 KiB/s 00:01 [###############################] 100%
perl-HTTP-Date-6.06-1-any 9.5 KiB 26.0 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-libsystre... 9.8 KiB 23.0 KiB/s 00:00 [###############################] 100%
perl-Net-SMTP-SSL-1.04-2-any 4.9 KiB 11.8 KiB/s 00:00 [###############################] 100%
mingw-w64-x86_64-windows-d... 3.1 KiB 5.40 KiB/s 00:01 [###############################] 100%
Total (74/74) 116.2 MiB 6.13 MiB/s 00:19 [###############################] 100%
(74/74) checking keys in keyring [###############################] 100%
(74/74) checking package integrity [###############################] 100%
(74/74) loading package files [###############################] 100%
(74/74) checking for file conflicts [###############################] 100%
(74/74) checking available disk space [###############################] 100%
:: Processing package changes...
( 1/74) installing heimdal [###############################] 100%
( 2/74) installing libcbor [###############################] 100%
( 3/74) installing libfido2 [###############################] 100%
( 4/74) installing openssh [###############################] 100%
( 5/74) installing perl-Error [###############################] 100%
( 6/74) installing perl-Authen-SASL [###############################] 100%
( 7/74) installing perl-Encode-Locale [###############################] 100%
( 8/74) installing perl-HTTP-Date [###############################] 100%
( 9/74) installing perl-File-Listing [###############################] 100%
(10/74) installing perl-HTML-Tagset [###############################] 100%
(11/74) installing perl-Clone [###############################] 100%
(12/74) installing perl-IO-HTML [###############################] 100%
(13/74) installing perl-LWP-MediaTypes [###############################] 100%
(14/74) installing perl-URI [###############################] 100%
(15/74) installing perl-HTTP-Message [###############################] 100%
(16/74) installing perl-HTML-Parser [###############################] 100%
(17/74) installing perl-H