Browse Source

Merge remote-tracking branch 'origin/master'

master
VIVIMAN 3 years ago
parent
commit
98cbb4c5e7
  1. 22
      golang_learn/data_func/go_to_fyne/demo01/最小的带GUI.go
  2. 0
      golang_learn/data_func/go_to_fyne/demo01/最小的带GUI.png
  3. 29
      golang_learn/data_func/go_to_fyne/demo02/简单应用.go
  4. BIN
      golang_learn/data_func/go_to_fyne/demo02/简单应用.jpg
  5. 22
      golang_learn/data_func/go_to_fyne/demo03/两个应用.go
  6. BIN
      golang_learn/data_func/go_to_fyne/demo03/两个应用.jpg
  7. 27
      golang_learn/data_func/go_to_fyne/demo04/进度应用.go
  8. BIN
      golang_learn/data_func/go_to_fyne/demo04/进度应用.jpg
  9. 33
      golang_learn/data_func/go_to_fyne/demo05/菜单栏.go
  10. BIN
      golang_learn/data_func/go_to_fyne/demo05/菜单栏.jpg
  11. 28
      golang_learn/data_func/go_to_fyne/demo06/列表.go
  12. BIN
      golang_learn/data_func/go_to_fyne/demo06/列表.jpg
  13. 29
      golang_learn/data_func/go_to_fyne/demo07/main.go
  14. BIN
      golang_learn/data_func/go_to_fyne/demo07/桌面显示.jpg
  15. 24
      golang_learn/data_func/go_to_fyne/demo08/信息录入.go
  16. BIN
      golang_learn/data_func/go_to_fyne/demo08/信息录入.jpg
  17. 32
      golang_learn/data_func/go_to_fyne/demo09/表单.go
  18. BIN
      golang_learn/data_func/go_to_fyne/demo09/表单.jpg
  19. 20
      golang_learn/data_func/go_to_fyne/demo1/main.go
  20. 27
      golang_learn/data_func/go_to_fyne/demo10/选择.go
  21. BIN
      golang_learn/data_func/go_to_fyne/demo10/选择.jpg
  22. 90
      golang_learn/data_func/go_to_fyne/demo2/main.go
  23. BIN
      golang_learn/data_func/go_to_fyne/demo2/较为复杂界面.png
  24. 96
      golang_learn/data_func/go_to_fyne/demo3/main.go
  25. BIN
      golang_learn/data_func/go_to_fyne/demo3/实现交互界面.png
  26. 30
      golang_learn/data_func/go_to_fyne/demo4/main.go
  27. 4
      golang_learn/data_func/go_to_fyne/demo4/替换应用左上角图标.md
  28. 106
      golang_learn/data_func/go_to_fyne/demo5/imgcollector.go
  29. 51
      golang_learn/data_func/go_to_fyne/demo5/main.go
  30. BIN
      golang_learn/data_func/go_to_fyne/demo5/文件收集器.png
  31. 49
      golang_learn/data_func/go_to_fyne/demo6/main.go
  32. BIN
      golang_learn/data_func/go_to_fyne/demo6/基础的画布对象.png
  33. 3
      golang_learn/data_func/go_to_fyne/帮助文件.md
  34. 3
      golang_learn/go.mod
  35. 35
      golang_learn/go.sum
  36. 50
      gui_gio_learn/notify/example.app/Contents/Info.plist
  37. 1
      gui_gio_learn/notify/example.app/Contents/PkgInfo
  38. 16861
      gui_wails02_learn/frontend/package-lock.json

22
golang_learn/data_func/go_to_fyne/demo01/最小的带GUI.go

@ -0,0 +1,22 @@
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()
}

0
golang_learn/data_func/go_to_fyne/demo1/最小的带GUI.png → golang_learn/data_func/go_to_fyne/demo01/最小的带GUI.png

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

29
golang_learn/data_func/go_to_fyne/demo02/简单应用.go

@ -0,0 +1,29 @@
package main
import (
"time"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
)
func updateTime(clock *widget.Label) {
formatted := time.Now().Format("Time: 03:04:05")
clock.SetText(formatted)
}
func main() {
a := app.New()
w := a.NewWindow("Clock")
clock := widget.NewLabel("")
updateTime(clock)
w.SetContent(clock)
go func() {
for range time.Tick(time.Second) {
updateTime(clock)
}
}()
w.ShowAndRun()
}

BIN
golang_learn/data_func/go_to_fyne/demo02/简单应用.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

22
golang_learn/data_func/go_to_fyne/demo03/两个应用.go

@ -0,0 +1,22 @@
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
)
func main() {
a := app.New()
w := a.NewWindow("Hello World")
w.SetContent(widget.NewLabel("Hello World!"))
w.Show()
w2 := a.NewWindow("Larger")
w2.SetContent(widget.NewLabel("More content"))
w2.Resize(fyne.NewSize(100, 100))
w2.Show()
a.Run()
}

BIN
golang_learn/data_func/go_to_fyne/demo03/两个应用.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

27
golang_learn/data_func/go_to_fyne/demo04/进度应用.go

@ -0,0 +1,27 @@
package main
import (
"time"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("ProgressBar Widget")
progress := widget.NewProgressBar()
infinite := widget.NewProgressBarInfinite()
go func() {
for i := 0.0; i <= 1.0; i += 0.1 {
time.Sleep(time.Millisecond * 250)
progress.SetValue(i)
}
}()
myWindow.SetContent(container.NewVBox(progress, infinite))
myWindow.ShowAndRun()
}

BIN
golang_learn/data_func/go_to_fyne/demo04/进度应用.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

33
golang_learn/data_func/go_to_fyne/demo05/菜单栏.go

@ -0,0 +1,33 @@
package main
import (
"log"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("Toolbar Widget")
toolbar := widget.NewToolbar(
widget.NewToolbarAction(theme.DocumentCreateIcon(), func() {
log.Println("New document")
}),
widget.NewToolbarSeparator(),
widget.NewToolbarAction(theme.ContentCutIcon(), func() {}),
widget.NewToolbarAction(theme.ContentCopyIcon(), func() {}),
widget.NewToolbarAction(theme.ContentPasteIcon(), func() {}),
widget.NewToolbarSpacer(),
widget.NewToolbarAction(theme.HelpIcon(), func() {
log.Println("Display help")
}),
)
content := container.NewBorder(toolbar, nil, nil, nil, widget.NewLabel("Content"))
myWindow.SetContent(content)
myWindow.ShowAndRun()
}

BIN
golang_learn/data_func/go_to_fyne/demo05/菜单栏.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

28
golang_learn/data_func/go_to_fyne/demo06/列表.go

@ -0,0 +1,28 @@
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
)
var data = []string{"a", "string", "list"}
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("List Widget")
list := widget.NewList(
func() int {
return len(data)
},
func() fyne.CanvasObject {
return widget.NewLabel("template")
},
func(i widget.ListItemID, o fyne.CanvasObject) {
o.(*widget.Label).SetText(data[i])
})
myWindow.SetContent(list)
myWindow.ShowAndRun()
}

BIN
golang_learn/data_func/go_to_fyne/demo06/列表.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

29
golang_learn/data_func/go_to_fyne/demo07/main.go

@ -0,0 +1,29 @@
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
)
var data = [][]string{[]string{"top left", "top right"},
[]string{"bottom left", "bottom right"}}
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("Table Widget")
list := widget.NewTable(
func() (int, int) {
return len(data), len(data[0])
},
func() fyne.CanvasObject {
return widget.NewLabel("wide content")
},
func(i widget.TableCellID, o fyne.CanvasObject) {
o.(*widget.Label).SetText(data[i.Row][i.Col])
})
myWindow.SetContent(list)
myWindow.ShowAndRun()
}

BIN
golang_learn/data_func/go_to_fyne/demo07/桌面显示.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

24
golang_learn/data_func/go_to_fyne/demo08/信息录入.go

@ -0,0 +1,24 @@
package main
import (
"log"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("Entry Widget")
input := widget.NewEntry()
input.SetPlaceHolder("Enter text...")
content := container.NewVBox(input, widget.NewButton("Save", func() {
log.Println("Content was:", input.Text)
}))
myWindow.SetContent(content)
myWindow.ShowAndRun()
}

BIN
golang_learn/data_func/go_to_fyne/demo08/信息录入.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

32
golang_learn/data_func/go_to_fyne/demo09/表单.go

@ -0,0 +1,32 @@
package main
import (
"log"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("Form Widget")
entry := widget.NewEntry()
textArea := widget.NewMultiLineEntry()
form := &widget.Form{
Items: []*widget.FormItem{ // we can specify items in the constructor
{Text: "Entry", Widget: entry}},
OnSubmit: func() { // optional, handle form submission
log.Println("Form submitted:", entry.Text)
log.Println("multiline:", textArea.Text)
myWindow.Close()
},
}
// we can also append items
form.Append("Text", textArea)
myWindow.SetContent(form)
myWindow.ShowAndRun()
}

BIN
golang_learn/data_func/go_to_fyne/demo09/表单.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

20
golang_learn/data_func/go_to_fyne/demo1/main.go

@ -1,20 +0,0 @@
package main
import (
"fyne.io/fyne/app"
"fyne.io/fyne/widget"
)
func main() {
app := app.New()
w := app.NewWindow("Hello")
w.SetContent(widget.NewVBox(
widget.NewLabel("Hello Fyne!"),
widget.NewButton("Quit", func() {
app.Quit()
}),
))
w.ShowAndRun()
}

27
golang_learn/data_func/go_to_fyne/demo10/选择.go

@ -0,0 +1,27 @@
package main
import (
"log"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("Choice Widgets")
check := widget.NewCheck("Optional", func(value bool) {
log.Println("Check set to", value)
})
radio := widget.NewRadioGroup([]string{"Option 1", "Option 2"}, func(value string) {
log.Println("Radio set to", value)
})
combo := widget.NewSelect([]string{"Option 1", "Option 2"}, func(value string) {
log.Println("Select set to", value)
})
myWindow.SetContent(container.NewVBox(check, radio, combo))
myWindow.ShowAndRun()
}

BIN
golang_learn/data_func/go_to_fyne/demo10/选择.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

90
golang_learn/data_func/go_to_fyne/demo2/main.go

@ -1,90 +0,0 @@
// Package main provides various examples of Fyne API capabilities
package main
import (
"fmt"
"net/url"
"fyne.io/fyne"
"fyne.io/fyne/app"
"fyne.io/fyne/canvas"
//"fyne.io/fyne/cmd/fyne_demo/screens"
"fyne.io/fyne/layout"
"fyne.io/fyne/theme"
"fyne.io/fyne/widget"
)
const preferenceCurrentTab = "currentTab"
func parseURL(urlStr string) *url.URL {
link, err := url.Parse(urlStr)
if err != nil {
fyne.LogError("Could not parse URL", err)
}
return link
}
func welcomeScreen(a fyne.App) fyne.CanvasObject {
//logo := canvas.NewImageFromResource(data.FyneScene)
logo := canvas.NewImageFromResource(nil)
logo.SetMinSize(fyne.NewSize(228, 167))
return widget.NewVBox(
widget.NewLabelWithStyle("欢迎您!", fyne.TextAlignCenter, fyne.TextStyle{Bold: true}),
layout.NewSpacer(),
widget.NewHBox(layout.NewSpacer(), logo, layout.NewSpacer()),
widget.NewHBox(layout.NewSpacer(),
widget.NewHyperlink("fyne.io", parseURL("https://fyne.io/")),
widget.NewLabel("-"),
widget.NewHyperlink("documentation", parseURL("https://fyne.io/develop/")),
widget.NewLabel("-"),
widget.NewHyperlink("sponsor", parseURL("https://github.com/sponsors/fyne-io")),
layout.NewSpacer(),
),
layout.NewSpacer(),
widget.NewGroup("Theme",
fyne.NewContainerWithLayout(layout.NewGridLayout(2),
widget.NewButton("Dark", func() {
a.Settings().SetTheme(theme.DarkTheme())
}),
widget.NewButton("Light", func() {
a.Settings().SetTheme(theme.LightTheme())
}),
),
),
)
}
func main() {
// a := app.NewWindow("io.fyne.demo")
a := app.New()
w := a.NewWindow("样例")
a.SetIcon(theme.FyneLogo())
w.SetMainMenu(fyne.NewMainMenu(fyne.NewMenu("File",
fyne.NewMenuItem("新增", func() { fmt.Println("菜单新增") }),
// a quit item will be appended to our first menu
), fyne.NewMenu("编辑",
fyne.NewMenuItem("剪切", func() { fmt.Println("菜单剪切") }),
fyne.NewMenuItem("复制", func() { fmt.Println("菜单复制") }),
fyne.NewMenuItem("粘贴", func() { fmt.Println("菜单粘贴") }),
)))
// w.SetMaster()
tabs := widget.NewTabContainer(
widget.NewTabItemWithIcon("欢迎", theme.HomeIcon(), welcomeScreen(a)),
//widget.NewTabItemWithIcon("小部件", theme.ContentCopyIcon(), screens.WidgetScreen()),
//widget.NewTabItemWithIcon("图形", theme.DocumentCreateIcon(), screens.GraphicsScreen()),
//widget.NewTabItemWithIcon("视窗", theme.ViewFullScreenIcon(), screens.DialogScreen(w)),
//widget.NewTabItemWithIcon("高级", theme.SettingsIcon(), screens.AdvancedScreen(w))
)
tabs.SetTabLocation(widget.TabLocationLeading)
//tabs.SelectTabIndex(a.Preferences().Int(preferenceCurrentTab))
w.SetContent(tabs)
w.ShowAndRun()
//a.Preferences().SetInt(preferenceCurrentTab, tabs.CurrentTabIndex())
}

BIN
golang_learn/data_func/go_to_fyne/demo2/较为复杂界面.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

96
golang_learn/data_func/go_to_fyne/demo3/main.go

@ -1,96 +0,0 @@
package main
import (
"encoding/json"
"fmt"
"fyne.io/fyne"
"fyne.io/fyne/app"
"fyne.io/fyne/layout"
"fyne.io/fyne/theme"
"fyne.io/fyne/widget"
"io/ioutil"
"net/http"
)
var ip = widget.NewLabel("")
var position = widget.NewLabel("")
var isp = widget.NewLabel("")
type IpInfo struct {
Code int `json:"code"`
Message string `json:"msg"`
Data `json:"data"`
}
type Data struct {
IP string `json:"ip"`
Position string `json:"pos"`
Isp string `json:"isp"`
}
func main() {
a := app.New()
a.Settings().SetTheme(theme.LightTheme())
w := a.NewWindow("Demo")
w.Resize(fyne.NewSize(600, 500))
//w.SetContent(fyne.NewContainerWithLayout(layout.NewGridLayoutWithColumns(2), info(GetIpInfo("")), query()))
w.SetContent(fyne.NewContainerWithLayout(layout.NewGridLayout(2), info(GetIpInfo("")), query()))
w.ShowAndRun()
}
func GetIpInfo(ip string) string {
if len(ip) == 0 {
return ""
}
url := fmt.Sprintf("http://v1.alapi.cn/api/ip?ip=%s&format=json", ip)
resp, err := http.Get(url)
if err != nil {
// handle error
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
// handle error
}
return string(body)
}
func query() fyne.CanvasObject {
ip := widget.NewEntry()
ip.SetPlaceHolder("Please input IP address")
form := &widget.Form{
OnSubmit: func() {
info(GetIpInfo(ip.Text))
},
}
form.Append("IP", ip)
query := widget.NewGroup("Query", form)
return widget.NewScrollContainer(query)
}
func info(response string) fyne.CanvasObject {
var i IpInfo
json.Unmarshal([]byte(response), &i)
// 创建form表单,名称 text,内容 widget
screen := widget.NewForm(
&widget.FormItem{Text: "IP地址:", Widget: ip},
&widget.FormItem{Text: "所属地:", Widget: position},
&widget.FormItem{Text: "供应商:", Widget: isp},
)
// 设置值
ip.SetText(i.IP)
position.SetText(i.Position)
isp.SetText(i.Isp)
// 创建输入值
info := widget.NewGroup("Info", screen)
return widget.NewScrollContainer(info)
}

BIN
golang_learn/data_func/go_to_fyne/demo3/实现交互界面.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

30
golang_learn/data_func/go_to_fyne/demo4/main.go

File diff suppressed because one or more lines are too long

4
golang_learn/data_func/go_to_fyne/demo4/替换应用左上角图标.md

@ -1,4 +0,0 @@
# 较为复杂界面
*
>

106
golang_learn/data_func/go_to_fyne/demo5/imgcollector.go

@ -1,106 +0,0 @@
package main
import (
"fmt"
"io/ioutil"
"os"
"path"
"path/filepath"
)
var listFilePrefix string = " "
type ImgCollector struct {
dir string
outputDir string
imgTypes []string
}
func (img *ImgCollector) SetDir(dir string) {
img.dir = dir
}
func (img *ImgCollector) SetOutputDir(dir string) {
img.outputDir = dir
}
func (img *ImgCollector) SetFilters(filters []string) {
img.imgTypes = filters
}
func (img *ImgCollector) Run() bool {
if len(img.imgTypes) == 0 {
fmt.Println("no filters")
//return false
} else {
fmt.Println(img.imgTypes[0] + " ==")
}
// print current directory
if img.dir == "" {
//var cwd string
//re, _ := os.Executable()
//cwd = filepath.Dir(re)
//fmt.Println("pwd:" + cwd)
//img.dir = cwd
fmt.Println("no input dir")
return false
}
fmt.Println("img.dir:" + img.dir)
fmt.Println("parent dir:" + filepath.Dir(img.dir))
// if no outpuDir ,create a new temporary one in cwd
if img.outputDir == "" {
pdir := filepath.Dir(img.dir)
tmpdir, err := ioutil.TempDir(pdir, "imgcollector-")
if err != nil {
fmt.Println("error")
}
fmt.Println("temp dir : " + tmpdir)
img.outputDir = tmpdir
}
// list all files
pathSeparator := string(os.PathSeparator)
level := 8
img.listAllFileByName(level, pathSeparator, img.dir)
return true
}
func (img *ImgCollector) listAllFileByName(level int, pathSeparator string, fileDir string) {
files, _ := ioutil.ReadDir(fileDir)
tmpPrefix := ""
for i := 1; i < level; i++ {
tmpPrefix = tmpPrefix + listFilePrefix
}
for _, onefile := range files {
if onefile.IsDir() {
//fmt.Printf("\033[34m %s %s \033[0m \n" , tmpPrefix, onefile.Name());
//fmt.Println(tmpPrefix, onefile.Name(), "目录:")
fmt.Println(onefile.Name())
fmt.Println(filepath.Dir(onefile.Name()))
img.listAllFileByName(level+1, pathSeparator, fileDir+pathSeparator+onefile.Name())
} else {
// judge postfix and move it
postfix := path.Ext(onefile.Name())
for _, v := range img.imgTypes {
if postfix == v {
typePath := img.outputDir + "/" + postfix[1:len(postfix)]
_, err := os.Stat(typePath)
if err != nil {
if os.IsNotExist(err) {
// make dir
os.Mkdir(typePath, os.ModePerm)
}
}
os.Rename(fileDir+"/"+onefile.Name(), typePath+"/"+onefile.Name())
}
}
}
}
}

51
golang_learn/data_func/go_to_fyne/demo5/main.go

@ -1,51 +0,0 @@
package main
import (
"fyne.io/fyne/app"
"fyne.io/fyne/widget"
)
type AppGUI struct {
items *widget.Select
srcDir *widget.Entry
outputDir *widget.Entry
btn *widget.Button
}
// 收集对应文件(采用直接移动的方式)
func (ap *AppGUI) Gather() {
ap.srcDir.Hide()
filters := make([]string, 0, 10)
if ap.items.Selected != "" {
filters = append(filters, "."+ap.items.Selected)
}
imgcl := &ImgCollector{}
imgcl.SetDir(ap.srcDir.Text)
imgcl.SetFilters(filters)
imgcl.Run()
}
func (ap *AppGUI) Run() {
ap.srcDir = widget.NewEntry()
ap.outputDir = widget.NewEntry()
ap.items = widget.NewSelect([]string{"bmp", "png", "jpg", "jpeg"}, nil)
ap.btn = widget.NewButton("Run", ap.Gather)
a := app.New()
w := a.NewWindow("图片")
w.SetTitle("图片收集器")
w.SetContent(widget.NewVBox(
ap.srcDir,
ap.outputDir,
ap.items,
ap.btn,
))
w.ShowAndRun()
}
func main() {
}

BIN
golang_learn/data_func/go_to_fyne/demo5/文件收集器.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

49
golang_learn/data_func/go_to_fyne/demo6/main.go

@ -1,49 +0,0 @@
package main
import (
"image/color"
"math/rand"
"fyne.io/fyne"
"fyne.io/fyne/app"
"fyne.io/fyne/canvas"
"fyne.io/fyne/layout"
"fyne.io/fyne/theme"
)
func main() {
a := app.New()
w := a.NewWindow("Canvas")
rect := canvas.NewRectangle(color.White)
text := canvas.NewText("Hello Text", color.White)
text.Alignment = fyne.TextAlignTrailing
text.TextStyle = fyne.TextStyle{Italic: true}
line := canvas.NewLine(color.White)
line.StrokeWidth = 5
circle := canvas.NewCircle(color.White)
circle.StrokeColor = color.Gray{0x99}
circle.StrokeWidth = 5
image := canvas.NewImageFromResource(theme.FyneLogo())
image.FillMode = canvas.ImageFillOriginal
raster := canvas.NewRasterWithPixels(
func(_, _, w, h int) color.Color {
return color.RGBA{uint8(rand.Intn(255)),
uint8(rand.Intn(255)),
uint8(rand.Intn(255)), 0xff}
},
)
gradient := canvas.NewHorizontalGradient(color.White, color.Transparent)
container := fyne.NewContainerWithLayout(
layout.NewGridLayout(5),
rect, text, line, circle, image, raster, gradient)
w.SetContent(container)
w.ShowAndRun()
}

BIN
golang_learn/data_func/go_to_fyne/demo6/基础的画布对象.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

3
golang_learn/data_func/go_to_fyne/帮助文件.md

@ -1,4 +1,7 @@
# fyne 库
推荐版本:https://developer.fyne.io/api/v2.1/
>
> 主要的 [官网](https://developer.fyne.io/)
>

3
golang_learn/go.mod

@ -3,7 +3,7 @@ module golang_learn
go 1.16
require (
fyne.io/fyne v1.4.3
fyne.io/fyne/v2 v2.1.4
github.com/360EntSecGroup-Skylar/excelize v1.4.1
github.com/PuerkitoBio/goquery v1.7.1
github.com/andlabs/ui v0.0.0-20200610043537-70a69d6ae31e
@ -11,7 +11,6 @@ require (
github.com/bitly/go-simplejson v0.5.0
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869
github.com/go-ini/ini v1.62.0
github.com/go-ole/go-ole v1.2.6 // indirect
github.com/go-sql-driver/mysql v1.6.0
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
github.com/google/martian v2.1.0+incompatible

35
golang_learn/go.sum

@ -37,12 +37,13 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
fyne.io/fyne v1.4.3 h1:356CnXCiYrrfaLGsB7qLK3c6ktzyh8WR05v/2RBu51I=
fyne.io/fyne v1.4.3/go.mod h1:8kiPBNSDmuplxs9WnKCkaWYqbcXFy0DeAzwa6PBO9Z8=
fyne.io/fyne/v2 v2.1.4 h1:bt1+28++kAzRzPB0GM2EuSV4cnl8rXNX4cjfd8G06Rc=
fyne.io/fyne/v2 v2.1.4/go.mod h1:p+E/Dh+wPW8JwR2DVcsZ9iXgR9ZKde80+Y+40Is54AQ=
github.com/360EntSecGroup-Skylar/excelize v1.4.1 h1:l55mJb6rkkaUzOpSsgEeKYtS6/0gHwBYyfo5Jcjv/Ks=
github.com/360EntSecGroup-Skylar/excelize v1.4.1/go.mod h1:vnax29X2usfl7HHkBrX5EvSCJcmH3dT9luvxzu8iGAE=
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v0.4.1 h1:GaI7EiDXDRfa8VshkTj7Fym7ha+y8/XxIgD2okUIjLw=
github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/Kodeworks/golang-image-ico v0.0.0-20141118225523-73f0f4cfade9/go.mod h1:7uhhqiBaR4CpN0k9rMjOtjpcfGd6DG2m04zQxKnWQ0I=
github.com/PuerkitoBio/goquery v1.7.1 h1:oE+T06D+1T7LNrn91B4aERsRIeCLJ/oPSa6xB9FPnz4=
@ -76,6 +77,7 @@ github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnht
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
@ -88,26 +90,25 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fredbi/uri v0.0.0-20181227131451-3dcfdacbaaf3 h1:FDqhDm7pcsLhhWl1QtD8vlzI4mm59llRvNzrFg6/LAA=
github.com/fredbi/uri v0.0.0-20181227131451-3dcfdacbaaf3/go.mod h1:CzM2G82Q9BDUvMTGHnXf/6OExw/Dz2ivDj48nVg7Lg8=
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/fyne-io/mobile v0.1.2 h1:0HaXDtOOwyOTn3Umi0uKVCOgJtfX73c6unC4U8i5VZU=
github.com/fyne-io/mobile v0.1.2/go.mod h1:/kOrWrZB6sasLbEy2JIvr4arEzQTXBTZGb3Y96yWbHY=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-gl/gl v0.0.0-20190320180904-bf2b1f2f34d7 h1:SCYMcCJ89LjRGwEa0tRluNRiMjZHalQZrVrvTbPh+qw=
github.com/go-gl/gl v0.0.0-20190320180904-bf2b1f2f34d7/go.mod h1:482civXOzJJCPzJ4ZOX/pwvXBWSnzD4OKMdH4ClKGbk=
github.com/go-gl/gl v0.0.0-20210813123233-e4099ee2221f h1:s0O46d8fPwk9kU4k1jj76wBquMVETx7uveQD9MCIQoU=
github.com/go-gl/gl v0.0.0-20210813123233-e4099ee2221f/go.mod h1:wjpnOv6ONl2SuJSxqCPVaPZibGFdSci9HFocT9qtVYM=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200625191551-73d3c3675aa3 h1:q521PfSp5/z6/sD9FZZOWj4d1MLmfQW8PkRnI9M6PCE=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200625191551-73d3c3675aa3/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20211024062804-40e447a793be h1:Z28GdQBfKOL8tNHjvaDn3wHDO7AzTRkmAXvHvnopp98=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20211024062804-40e447a793be/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-ini/ini v1.62.0 h1:7VJT/ZXjzqSrvtraFp4ONq80hTcRQth1c9ZnQ3uNQvU=
github.com/go-ini/ini v1.62.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
@ -225,7 +226,7 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/lucor/goinfo v0.0.0-20200401173949-526b5363a13a/go.mod h1:ORP3/rB5IsulLEBwQZCJyyV6niqmI7P4EWSmkug+1Ng=
github.com/lucor/goinfo v0.0.0-20210802170112-c078a2b0f08b/go.mod h1:PRq09yoB+Q2OJReAmwzKivcYyremnibWGbK7WfftHzc=
github.com/lxn/walk v0.0.0-20210112085537-c389da54e794 h1:NVRJ0Uy0SOFcXSKLsS65OmI1sgCCfiDUPj+cwnH7GZw=
github.com/lxn/walk v0.0.0-20210112085537-c389da54e794/go.mod h1:E23UucZGqpuUANJooIbHWCufXvOcT6E7Stq81gU+CSQ=
github.com/lxn/win v0.0.0-20210218163916-a377121e959e h1:H+t6A/QJMbhCSEH5rAuRxh+CtW96g0Or0Fxa9IKr4uc=
@ -286,10 +287,12 @@ github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBO
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww=
github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
github.com/shirou/gopsutil v2.20.4+incompatible h1:cMT4rxS55zx9NVUnCkrmXCsEB/RNfG9SwHY9evtX8Ng=
github.com/shirou/gopsutil v2.20.4+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
@ -330,6 +333,7 @@ github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs=
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
github.com/tidwall/sjson v1.2.4 h1:cuiLzLnaMeBhRmEv00Lpk3tkYrcxpmbU81tAY4Dw0tc=
github.com/tidwall/sjson v1.2.4/go.mod h1:098SZ494YoMWPmMO6ct4dcFnqxwj9r/gF0Etp19pSNM=
github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
github.com/xuri/efp v0.0.0-20210322160811-ab561f5b45e3 h1:EpI0bqf/eX9SdZDwlMmahKM+CDBgNbsXMhsN28XrM8o=
github.com/xuri/efp v0.0.0-20210322160811-ab561f5b45e3/go.mod h1:ybY/Jr0T0GTCnYjKqmdwxyxn2BQf2RcQIIvex5QldPI=
github.com/xuri/excelize/v2 v2.5.0 h1:nDDVfX0qaDuGjAvb+5zTd0Bxxoqa1Ffv9B4kiE23PTM=
@ -341,6 +345,8 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.3.8 h1:Nw158Q8QN+CPgTmVRByhVwapp8Mm1e2blinhmx4wx5E=
github.com/yuin/goldmark v1.3.8/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ=
@ -504,7 +510,6 @@ golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200720211630-cb9d2d5c5666/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@ -523,6 +528,7 @@ golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM=
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
@ -552,7 +558,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190808195139-e713427fea3f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@ -575,7 +580,6 @@ golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapK
golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
golang.org/x/tools v0.0.0-20200328031815-3db5fc6bac03/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
@ -592,8 +596,9 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f
golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
golang.org/x/tools v0.1.2 h1:kRBLX7v7Af8W7Gdbbc908OJcdgtK8bOz9Uaj8/F1ACA=
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

50
gui_gio_learn/notify/example.app/Contents/Info.plist

@ -1,50 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>18G103</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>example</string>
<key>CFBundleIdentifier</key>
<string>org.gioui</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>example</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>11C505</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>19B90</string>
<key>DTSDKName</key>
<string>macosx10.15</string>
<key>DTXcode</key>
<string>1130</string>
<key>DTXcodeBuild</key>
<string>11C505</string>
<key>LSMinimumSystemVersion</key>
<string>10.14</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSSupportsAutomaticTermination</key>
<true/>
<key>NSSupportsSuddenTermination</key>
<true/>
</dict>
</plist>

1
gui_gio_learn/notify/example.app/Contents/PkgInfo

@ -1 +0,0 @@
APPL????

16861
gui_wails02_learn/frontend/package-lock.json

File diff suppressed because it is too large
Loading…
Cancel
Save