猿问

如何在 Fyne 中将窗口大小调整为对话框大小

我正在为 Go 使用 Fyne 包。我要做的就是显示一个对话框,并让窗口自动调整为对话框的最大大小。我已经查看了文档并查看了示例,但我在任何地方都找不到它!窗口始终为 0x0 像素。如果我调整窗口大小,我可以告诉对话框具有最大高度和宽度,但我似乎无法将其反馈回窗口的大小。这是我的代码:



import (

    "fyne.io/fyne"

    "fyne.io/fyne/app"

    "fyne.io/fyne/dialog"

)


var myApp fyne.App


func main() {

    myApp = app.New()

    myWindow := myApp.NewWindow("test")


    cnfm := dialog.NewConfirm("Test Dialog!", "Are you sure you want to interact with this test dialog?", loseCallback, myWindow)


    cnfm.Show()

    cnfm.Resize(cnfm.MaxSize())


    myWindow.Show()

    

    // uncomment to have a window greater than 0x0

    //myWindow.Resize(fyne.NewSize(375, 180))

    myApp.Run()

}


func loseCallback(yes bool) {

    myApp.Quit()

}

这似乎很基本,但我找不到任何方法来实现这一点!我尝试过使用布局、容器等,但没有任何区别,窗口始终为 0x0。我真的很感激这方面的帮助!


烙印99
浏览 744回答 1
1回答

慕桂英3389331

Fyne 并没有真正的 MaxSize 概念。有 MinSize() (组件永远不应小于),它的 Size() 是屏幕上的当前大小。对话框出现在当前内容上,因此不受内容布局等的限制或扩展。由于对话框不是设计为一段时间的主要内容,我想知道是否将您的内容更改为窗口内会更合适(因为当应用程序中发生某些事情并且您想要中断它时,该对话框真的被使用) .例如:import (    "fyne.io/fyne"    "fyne.io/fyne/app"    "fyne.io/fyne/container"    "fyne.io/fyne/layout"    "fyne.io/fyne/widget")var myApp fyne.Appfunc main() {    myApp = app.New()    myWindow := myApp.NewWindow("test")    yes := widget.NewButton("Yes", closeCallback)    yes.Importance = widget.HighImportance    myWindow.SetContent(container.NewVBox(        widget.NewLabel("Are you sure you want to interact with this test dialog?"),        container.NewHBox(layout.NewSpacer(),            widget.NewButton("No", closeCallback), yes,            layout.NewSpacer())))    myWindow.ShowAndRun()}func closeCallback() {    myApp.Quit()}
随时随地看视频慕课网APP

相关分类

Go
我要回答