这篇文章介绍两种弹窗,一个是popUp; 一个是popUpModal
popUp
popUp 显示在当前窗口的相对位置,position(0,0),单击弹窗以外的位置就会被隐藏。显示位置默认是在左上角,可以通过设置position改变其现实位置。
box := container.NewVBox(
widget.NewLabel("the label"),
&widget.Button{Text: "关闭模式窗口"},
)
// 创建弹窗
popWin := widget.NewPopUp(box, myWin.Canvas())
btn := widget.NewButton("显示", func() {
popWin.ShowAtPosition(fyne.NewPos(
// 计算窗口的中央位置
myWin.Canvas().Size().Width/2- popWin.MinSize().Width/2,
myWin.Canvas().Size().Height/2-popWin.MinSize().Height/2))
})
popUpModal
popUpModal现在当前窗口的中央,并且遮盖除了弹窗以外的所有元素。只能通过添加单击事件隐藏当前窗口。
//创建模式弹窗
popWinModal := widget.NewModalPopUp(box, myWin.Canvas())
btn2 := widget.NewButton("模式显示", func() {
popWinModal.Show()
})
//关闭模式窗口
box.Objects[1].(*widget.Button).OnTapped = func() {
popWinModal.Hide()
}
源代码: https://gitee.com/gene-zhao/fyne-demo.git