MultiLineEntry设置大小
在另一篇文章讲过,放入border布局中,可以最大化MultiLineEntry。
这里再介绍另一种方法:SetMinRowsVisible()
func (e *Entry) SetMinRowsVisible(count int) {
e.multiLineRows = count
e.Refresh()
}
SetMinRowsVisible强制multi-line entry在不滚动的情况下显示“count”行数。这不是验证或要求,它只是影响最小可见尺寸。请小心使用,因为Fyne应用程序可以在小屏幕上运行,所以如果这个数字很高,您可能希望添加一个滚动容器。默认值为3。
注意:这个方法只针对multi-entry有效,针对entry无效。
代码1
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("VPN")
userEntry := widget.NewEntry()
userL := widget.NewFormItem("USERNAME", userEntry)
passEntry := widget.NewPasswordEntry()
passL := widget.NewFormItem("PASSWORD", passEntry)
form := widget.NewForm(userL, passL)
txtArea := widget.NewMultiLineEntry()
c := container.NewVBox(form, txtArea)
myWindow.SetContent(c)
myWindow.Resize(fyne.NewSize(300, 300))
myWindow.Show()
myApp.Run()
}
效果图如下:
代码2
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("VPN")
userEntry := widget.NewEntry()
userL := widget.NewFormItem("USERNAME", userEntry)
passEntry := widget.NewPasswordEntry()
passL := widget.NewFormItem("PASSWORD", passEntry)
form := widget.NewForm(userL, passL)
txtArea := widget.NewMultiLineEntry()
txtArea.SetMinRowsVisible(15)
c := container.NewVBox(form, txtArea)
myWindow.SetContent(c)
myWindow.Resize(fyne.NewSize(300, 300))
myWindow.Show()
myApp.Run()
}
效果图如下:
可以看到txtArea.SetMinRowsVisible(15)
这个设置起了作用。