简介
在上一篇文章中,我们介绍了一个 Go 的高颜值 GUI 库fyne
。本文接着上一篇,介绍如何使用fyne
编写一个简单的计算器程序。程序效果如下:
![](https://i-blog.csdnimg.cn/blog_migrate/ffa7179b609fa9a4884f0517dc133c49.png)
控件布局
我们使用widget.Entry
来显示输入的数字、运算符和运算结果。先创建一个widget.Entry
对象,设置可显示多行:
display := widget.NewEntry()
display.MultiLine = true
其它数字和符号控件都用widget.Button
来表示。按钮也分为两种,一种是没有特殊效果的,点击后直接在显示框中添加对应的字符即可。一种是有特殊效果的,例如清空显示框(AC
)、进行计算(=
)。中间三行按钮都是前一种,我们使用GridLayout
来布局,每行显示 4 个:
digits := []string{
"7", "8", "9", "×",
"4", "5", "6", "-",
"1", "2", "3", "+",
}
var digitBtns []fyne.CanvasObject
for _, val := range digits {
digitBtns = append(digitBtns, widget.NewButton(val, input(display, val)))
}
digitContainer := fyne.NewContainerWithLayout(
layout.NewGridLayout(4),
digitBtns...)
input
回调后面介绍。
第一行有 3 个具有特殊效果的按钮&