VBox布局02
最常用的布局是layout.BoxLayout,它有两种变体,水平和垂直。box布局将所有元素排列在单行或单列中,并带有可选的空格以帮助对齐。
一步一步实现一个如下界面布局,这个界面可以使用VBox布局来实现。
这次添加了2个复选框。
添加复选框代码
package mainimport ("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("Newlock")input := widget.NewEntry()input.SetPlaceHolder("Enter Password Length")c := container.NewVBox(input)w.SetContent(c)w.Resize(fyne.NewSize(400, 300))w.ShowAndRun()
}
效果如下:
widget.NewCheck()函数的第一个参数是一个string类型,第二个参数是一个函数,用来触发对应的勾选和取消操作逻辑。
container.NewVBox(input, check1, check2)
3个画布对象从上到下排列成1列。
添加button
package mainimport ("fyne.io/fyne/v2""fyne.io/fyne/v2/app""fyne.io/fyne/v2/canvas""fyne.io/fyne/v2/container""fyne.io/fyne/v2/theme""fyne.io/fyne/v2/widget""image/color"
)func main() {a := app.New()w := a.NewWindow("Newlock")input := widget.NewEntry()input.SetPlaceHolder("Enter Password Length")check1 := widget.NewCheck("Upper Case Letters", func(value bool) {})check1.Checked = truecheck2 := widget.NewCheck("Allow Reapeating Charcters", func(value bool) {})check2.Checked = truetext := canvas.NewText("", color.Black)text.TextSize = 16btn := widget.NewButton("Generate", func() {text.Text = "55d##$#..s##SFFF("text.Refresh()})copybtn := widget.NewButtonWithIcon("Copy Password", theme.ContentCopyIcon(), func() {w.Clipboard().SetContent(text.Text)})c := container.NewVBox(input,check1,check2,text,btn,copybtn)w.SetContent(c)w.Resize(fyne.NewSize(400, 300))w.ShowAndRun()
}
效果如下: