首页 > 文章列表 > fyne api中使用多个Window.SetContent会对性能产生负面影响吗?

fyne api中使用多个Window.SetContent会对性能产生负面影响吗?

499 2024-05-02
问题内容

我正在开发一个应用程序,但我需要使用 fyne api 的多个 window.setcontent 方法,但我担心它会降低我的应用程序的性能。最旧的 window.setcontent 是否仍在后台运行?或者在我调用第二个 window.setcontent 方法后它停止工作。这是测试代码,在我的实际应用程序中我需要使用比测试代码更多的 window.setcontent 方法。我仍然没有找到使我的应用程序在不使用测试代码中的第二个 window.setcontent 方法的情况下可用的解决方案。

package main

import (
    "fyne.io/fyne/v2"
    "fyne.io/fyne/v2/app"
    "fyne.io/fyne/v2/widget"
)

func main() {
    a := app.New()
    
    w := a.NewWindow("testing")
    
    w.Resize(fyne.NewSize(400, 400))
    
    testButton1 := widget.NewButton("test1", func(){})
    
    testButton2 := widget.NewButton("go to test1 button", func(){
        w.SetContent(testButton1)
    })
    
    w.SetContent(testButton2)
    
    w.ShowAndRun()
    
}


正确答案


设置窗口内容必须检查它是否适合以及其他可能会很慢的事情。 使用容器并替换其内容可能会更有效。

这也更容易制作可重用的组件,因为小部件不应该要求它们使用整个窗口。