桌面小程序-c++桌面小程序
【Go Fyne】四行核心代码实现你的第一个GUI界面(下)Go语言GUI-Go Fyne
前言
本系列学习详细视频教学地址:2022 Go语言实战课程使用Go Fyne框架快速开发GUI程序课程【用Go开发桌面和移动端程序】
本系列博客仅作为记录学习之用。
通过记录 Go fyne 学习来构建桌面应用程序。 它们快速、高效且相对较小。
Fyne - 用于构建 GUI 应用程序的库。 它生成非常小的二进制文件,几乎没有依赖项。
根据 Go 语言的特点,我们可以为 Mac、Windows 或 Linux 制作应用程序……
实现效果如下:
第一个GUI界面的实现和详细的环境配置可以参考上一篇文章:【Go Fyne】四行核心代码实现你的第一个GUI界面(上)Go语言GUI-Go Fyne
一、Vscode的一些配置(配置Go的扩展) 1.1 第一步:
首先,Ctrl+shift+P,输入go:in,选择图中的选项;
选择所有项目后点击确定;
稍等片刻,可以在输出窗口看到所有工具都安装成功。
1.2 第二步:
搜索 gotemplate-syntax 并安装它。
1.3 关于其他工具组件:
1.制作:
这是一个非常好用且非常常用的构建工具。
2.巧克力味:
Windows 附带的巧克力被称为巧克力味。 安装好chocolatey之后,通过chocolatey安装make。
3、C编译器(C compiler):
tdm-gcc - 便于构建良好的应用程序。 当然你也可以按照官网推荐安装msys2。
2.关于代码
1. go mod init fynehw - 创建一个新的 go mod 文件。
2. go get fyne.io/fyne/v2 - 使代码干净,但实际上并没有完成工作。
3. a := app.New()——赋值a创建一个新的应用程序; 创建一个名为 a 的小变量并将其作为我的应用程序。
4. w := a.NewWindow(“Hello, World!”)——声明变量w来创建应用程序a的窗口,否则什么都看不到。 标题为 Hello, World! 的窗口是为应用程序 a 创建的。
5. w.SetContent(widget.NewLabel(“Hello, World!”))——设置窗口中的内容——>将窗口的内容设置为小部件包(widgets)中的一个小部件(这里使用Label—label ) —> 标签内容为Hello, World!。
放入窗口的东西称为容器 - 稍后会详细介绍。
6. w.ShowAndRun()——启动应用程序。
3.应用结构
变量 a 是我们创建的应用程序。 一个应用程序有一个变量,其类型从未被使用过(一个应用程序有一个变量是您永远不会使用的类型);
每个应用至少需要有一个窗口,w为窗口,标题为Hello, World!;
窗口中的内容是由小部件组成的,小部件有很多种,比如标签、按钮、文本输入等等。
应用程序通过show显示窗口,通过run运行程序。 这里通过w.ShowAndRun()的一个命令实现了两个操作。 另外,我们也可以通过w.Show()和a.Run()这两个命令来达到同样的效果。 以下示例代码与上一篇文章中的代码具有相同的效果。
例如:
package main
import (
"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()
a.Run()
}
当代码运行到w.ShowAndRun()时,程序会一直执行event loop或者run loop桌面小程序桌面小程序,之后不会执行任何代码; 它只是在后台运行,监听点击、点击、移动或任何其他可能的动作。 它在后台侦听事件,并在采取相应操作时对其进行操作。 在我们终止应用程序之前,代码不会继续向下。
例如:
package main
import (
"fmt"
"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.ShowAndRun()
tidy()
}
func tidy() {
fmt.Println("would tidy up")
}
只有在我们关闭应用后,代码才会继续执行tidy(),如下图所示:
后记
本部分研究是对Go语言GUI制作的初步探索。
我设置了相应的专栏,喜欢的可以订阅哦~