登录
首页 >  Golang >  Go问答

在 golang 中显示和处理 Fyne 窗口

来源:stackoverflow

时间:2024-04-19 22:45:19 307浏览 收藏

你在学习Golang相关的知识吗?本文《在 golang 中显示和处理 Fyne 窗口》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

问题内容

我试图让这个脚本能够在每次函数 initconnection 从服务器端接收到命令时显示 gui (drawmessage) 正如您所看到的,当接收到命令“showwindow”时,此脚本会从 func initconnection() 调用drawmessage(),此代码只能正常工作 第一次接收命令并关闭 gui 当我尝试再次发送命令时没有弹出窗口 如何让它每次收到命令都有响应?

package main

import (
    "fyne.io/fyne/canvas"
    "fyne.io/fyne/container"
    "fyne.io/fyne/v2/app"
)

var done = make(chan struct{})

func initConnection(receivedCommand string) {
    switch receivedCommand {
    case "ShowWindow":
        done <- struct{}{}
    }
}
func main() {

    go initConnection()

    for {
        select {
        case <-done:
            DrawMessage()
        }
    }
}

func DrawMessage() {
    myApp := app.New()
    myWindow := myApp.NewWindow("New GUI")
    image := canvas.NewImageFromFile("message.png")
    image.FillMode = canvas.ImageFillOriginal
    content := container.NewVBox(container.NewCenter(image))
    myWindow.SetContent(content)
    myWindow.ShowAndRun()
}

正确答案


正如您上一个问题(Processing function in background while GUI is shown)中所建议的,您应该将 App.Run 与 Window.Show 分开...... 您正在运行的应用程序会阻止其退出,但您可以在启动 Fyne 应用程序之后显示该窗口。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《在 golang 中显示和处理 Fyne 窗口》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>