package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
a := app.New() // 创建一个窗口
w := a.NewWindow("Hello") // 给窗口设置一个标题
hello1 := widget.NewLabel("111111111111") // 创建一个标签
hello2 := widget.NewLabel("222222222222") // 创建一个标签
hello3 := widget.NewLabel("333333333333") // 创建一个标签
button := widget.NewButton("Hi!", func() { // 按钮控件 按钮是带点击事件的
hello1.SetText("Welcome :)") // 修改标签的 标题
})
// HBox 布局(横向布局)
w.SetContent(container.NewHBox( // 给窗口添加控件
hello1, // 标签控件
hello2, // 标签控件
hello3, // 标签控件
button,
))
w.Resize(fyne.NewSize(500, 500)) // 设置窗口大小
w.ShowAndRun()
2. VBox 布局 (纵向布局)
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
a := app.New() // 创建一个窗口
w := a.NewWindow("Hello") // 给窗口设置一个标题
hello1 := widget.NewLabel("111111111111") // 创建一个标签
hello2 := widget.NewLabel("222222222222") // 创建一个标签
hello3 := widget.NewLabel("333333333333") // 创建一个标签
button := widget.NewButton("Hi!", func() { // 按钮控件 按钮是带点击事件的
hello1.SetText("Welcome :)") // 修改标签的 标题
})
// VBox 布局(纵向布局)
w.SetContent(container.NewVBox( // 给窗口添加控件
hello1, // 标签控件
hello2, // 标签控件
hello3, // 标签控件
button,
))
w.Resize(fyne.NewSize(500, 500)) // 设置窗口大小
w.ShowAndRun()
3. Center 布局 (居中布局)
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
a := app.New() // 创建一个窗口
w := a.NewWindow("Hello") // 给窗口设置一个标题
hello1 := widget.NewLabel("111111111111") // 创建一个标签
hello2 := widget.NewLabel("222222222222") // 创建一个标签
hello3 := widget.NewLabel("333333333333") // 创建一个标签
button := widget.NewButton("Hi!", func() { // 按钮控件 按钮是带点击事件的
hello1.SetText("Welcome :)") // 修改标签的 标题
})
// Center 布局(居中布局)
w.SetContent(container.NewCenter( // 给窗口添加控件
hello1, // 标签控件
hello2, // 标签控件
hello3, // 标签控件
button,
))
w.Resize(fyne.NewSize(500, 500)) // 设置窗口大小
w.ShowAndRun()
4. Form 布局 (类似表单布局)
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") // 给窗口设置一个标题
hello1 := widget.NewLabel("111111111111") // 创建一个标签
hello2 := widget.NewLabel("222222222222") // 创建一个标签
hello3 := widget.NewLabel("333333333333") // 创建一个标签
button := widget.NewButton("Hi!", func() { // 按钮控件 按钮是带点击事件的
hello1.SetText("Welcome :)") // 修改标签的 标题
})
// Form 布局(标签布局)
w.SetContent(widget.NewForm(
widget.NewFormItem("1",hello1),
widget.NewFormItem("2",hello2),
widget.NewFormItem("3",hello3),
widget.NewFormItem("4",button),// 给窗口添加控件
))
w.Resize(fyne.NewSize(500, 500)) // 设置窗口大小
w.ShowAndRun()
5. 组合布局
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
a := app.New() // 创建一个窗口
w := a.NewWindow("Hello") // 给窗口设置一个标题
hello1 := widget.NewLabel("111111111111") // 创建一个标签
hello2 := widget.NewLabel("222222222222") // 创建一个标签
hello3 := widget.NewLabel("333333333333") // 创建一个标签
button := widget.NewButton("Hi!", func() { // 按钮控件 按钮是带点击事件的
hello1.SetText("Welcome :)") // 修改标签的 标题
})
// 组合布局
con1 := container.NewVBox(hello1, hello2 )
con2 := container.NewVBox(button, hello3)
w.SetContent(container.NewHBox(con1, con2))
w.Resize(fyne.NewSize(500, 500)) // 设置窗口大小
w.ShowAndRun()
6. Grid 布局 (自适应布局) 让控件都有均匀大小
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
a := app.New() // 创建一个窗口
w := a.NewWindow("Hello") // 给窗口设置一个标题
hello1 := widget.NewLabel("111111111111") // 创建一个标签
hello2 := widget.NewLabel("222222222222") // 创建一个标签
hello3 := widget.NewLabel("333333333333") // 创建一个标签
button := widget.NewButton("Hi!", func() { // 按钮控件 按钮是带点击事件的
hello1.SetText("Welcome :)") // 修改标签的 标题
})
// Grid 布局--- 没整明白是什么布局
//w.SetContent(container.NewGridWithColumns(2, hello1, hello2, hello3, button, button, button))
w.SetContent(container.NewAdaptiveGrid(2, hello1, hello2, hello3, button))
//w.Resize(fyne.NewSize(500, 500)) // 设置窗口大小
w.ShowAndRun()
发表评论