为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
烙印99 2022-07-11 17:37:02
我正在为 Go 使用 Fyne 包。我要做的就是显示一个对话框,并让窗口自动调整为对话框的最大大小。我已经查看了文档并查看了示例,但我在任何地方都找不到它!窗口始终为 0x0 像素。如果我调整窗口大小,我可以告诉对话框具有最大高度和宽度,但我似乎无法将其反馈回窗口的大小。这是我的代码:import (    "fyne.io/fyne"    "fyne.io/fyne/app"    "fyne.io/fyne/dialog")var myApp fyne.Appfunc 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。我真的很感激这方面的帮助!
查看完整描述

1 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

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.App


func 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()

}


查看完整回答
反对 回复 2022-07-11
  • 1 回答
  • 0 关注
  • 742 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信