Go Fyne 无法显示对话框

问题描述 投票:0回答:1

我正在 vs code 上的 Go 中运行一个项目,当我运行它时,将内容输出打印到终端。我希望能够分叉 x 个子进程,其中每个子进程都可以呈现自己的对话框并向其输出数据。我发现 fyne 是一个简单的 Go 用户界面,当我运行

runApp()
时,会出现一个小对话框。我不知道如何同时打开多个对话框、调整它们的大小以及向它们记录/打印文本。每个子进程都应该能够随时将任何文本打印到其特定对话框。

由于某种原因,当 main 运行时没有任何反应,也许我习惯了错误的例程。

package main

import (
   "bufio"
   "fmt"
   "log"
   "os"
   "fyne.io/fyne/v2/app"
   "fyne.io/fyne/v2/container"
   "fyne.io/fyne/v2/widget"
)

func main() {
   // Fork 3 child processes
   for i := 0; i < 3; i++ {
       go runApp()
   }
}

// Child process code
func runApp() {
   a := app.New()
   w := a.NewWindow("Hello")

   hello := widget.NewLabel("Hello Fyne!")
   w.SetContent(container.NewVBox(
       hello,
       widget.NewButton("Hi!", func() {
           hello.SetText("Welcome :)")
       }),
   ))

   w.ShowAndRun()
}
go user-interface child-process fyne
1个回答
0
投票

您只能在一个进程中运行一个 GUI 应用程序。做你想做的事情的方法是启动 goroutine 并从单个应用程序显示多个窗口。该应用程序将在 main() 末尾通过调用

a.Run()
而不是
w.ShowAndRun()
来运行。

参见 https://docs.fyne.io/started/windows.html

© www.soinside.com 2019 - 2024. All rights reserved.