|
|
package main
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
"freeCaculator/Application"
|
|
|
"freeCaculator/framework"
|
|
|
"freeCaculator/global"
|
|
|
"fyne.io/fyne/v2"
|
|
|
"fyne.io/fyne/v2/app"
|
|
|
"github.com/flopp/go-findfont"
|
|
|
"log"
|
|
|
"os"
|
|
|
"strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
/*
|
|
|
*
|
|
|
@author: sre
|
|
|
@date: 2022/8/22 0022
|
|
|
@desc: todo
|
|
|
*
|
|
|
*/
|
|
|
func init() {
|
|
|
//fyne原生并不支持中文,所以其界面上显示和输入汉字会出错。可用init函数引用字体的方式解决。
|
|
|
//go get github.com/flopp/go-findfont
|
|
|
fontPaths := findfont.List()
|
|
|
for _, fontPath := range fontPaths {
|
|
|
fmt.Println(fontPath)
|
|
|
//楷体:simkai.ttf 黑体:simhei.ttf
|
|
|
if strings.Contains(fontPath, "simhei.ttf") {
|
|
|
err := os.Setenv("FYNE_FONT", fontPath)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//go:generate fyne bundle -package global -o global/bundled.go assets
|
|
|
func main() {
|
|
|
// 创建程序
|
|
|
//_ = os.Setenv("FYNE_FONT", "./data/fonts/awesome.ttf")
|
|
|
a := app.NewWithID("org.yangqiao.picUploader")
|
|
|
a.SetIcon(global.ResourceAppPng)
|
|
|
//a.SetIcon(theme.FyneLogo())
|
|
|
logLifecycle(a)
|
|
|
//a.Settings().SetTheme(theme.LightTheme()) //SetTheme():设置应用的主题,默认为 DarkTheme。
|
|
|
w := a.NewWindow(global.APPTitle) //// 创建窗口对象、传入窗口名称
|
|
|
global.TopWindow = w
|
|
|
|
|
|
w.SetMainMenu(framework.MakeMenu(a, w))
|
|
|
w.SetMaster()
|
|
|
w.SetOnClosed(func() {
|
|
|
fmt.Println("窗口退出 打印剪切板内容")
|
|
|
fmt.Println(w.Clipboard().Content())
|
|
|
})
|
|
|
|
|
|
go func() {
|
|
|
time.Sleep(time.Second * 5)
|
|
|
|
|
|
}()
|
|
|
|
|
|
//主界面框架布局
|
|
|
Application.MainShow(w)
|
|
|
//demo界面框架布局
|
|
|
//ShowNav(w)
|
|
|
w.Resize(fyne.NewSize(640, 460)) //设置窗口尺寸。
|
|
|
//w居中显示
|
|
|
w.CenterOnScreen()
|
|
|
|
|
|
// 窗口的显示和运行
|
|
|
w.ShowAndRun()
|
|
|
}
|
|
|
|
|
|
func logLifecycle(a fyne.App) {
|
|
|
a.Lifecycle().SetOnStarted(func() {
|
|
|
log.Println("生存期: 开始")
|
|
|
})
|
|
|
a.Lifecycle().SetOnStopped(func() {
|
|
|
log.Println("生存期: 结束")
|
|
|
})
|
|
|
a.Lifecycle().SetOnEnteredForeground(func() {
|
|
|
log.Println("生存期: 进入前置窗口")
|
|
|
})
|
|
|
a.Lifecycle().SetOnExitedForeground(func() {
|
|
|
log.Println("生存期: 退出前置窗口")
|
|
|
})
|
|
|
|
|
|
}
|