Maison >développement back-end >Golang >Golang ferme la fenêtre

Golang ferme la fenêtre

王林
王林original
2023-05-22 12:37:07599parcourir

En programmation Go, fermer une fenêtre peut être une tâche courante. Pour les applications GUI, lorsque l'utilisateur clique sur le bouton de fermeture, nous devons capturer l'événement dans le programme et effectuer les opérations correspondantes, telles que la sauvegarde des données, la confirmation de la fermeture, etc. Dans cet article, nous verrons comment fermer une fenêtre en langage Go.

Tout d'abord, nous devons utiliser certaines bibliothèques GUI pour créer des fenêtres et gérer les événements. Actuellement, les bibliothèques GUI les plus populaires dans le langage Go incluent fyne, gotk3, qt, etc. Nous utiliserons la bibliothèque fyne comme exemple. Fyne est un framework GUI moderne basé sur Go permettant de créer des applications de bureau et mobiles faciles à utiliser, efficaces et multiplateformes. Avant de commencer, assurez-vous d'avoir installé la bibliothèque fyne, qui peut être installée dans le terminal à l'aide de la commande suivante :

go get fyne.io/fyne

Créer une fenêtre

Avant d'utiliser la bibliothèque fyne, nous devons comprendre ses bases. En réalité, chaque application possède un objet App, qui est l'objet principal de l'application. Une application appelée "Hello World" peut être créée à l'aide de la commande suivante :

app := fyne.NewApp("Hello World")

Ensuite, nous devons créer un objet fenêtre. Une fenêtre peut être créée à l'aide de la commande suivante :

win := app.NewWindow("My Window")

Cela créera une fenêtre appelée "Ma fenêtre". Nous pouvons maintenant ajouter du contenu à la fenêtre. Par exemple, nous pouvons ajouter un composant label comme titre de la fenêtre :

title := widget.NewLabel("My Window")
win.SetTitleBar(widget.NewVBox(title))

Les applications GUI sont pilotées par des événements, et en réalité, cela ne fait pas exception. Ensuite, nous devons ajouter un gestionnaire d'événements de fermeture pour la fenêtre.

Capturer les événements de fermeture

Dans la bibliothèque Fyne, nous pouvons ajouter un gestionnaire d'événements CloseRequest pour chaque fenêtre. Cet événement est déclenché lorsque l'utilisateur clique sur le bouton de fermeture. Nous pouvons ajouter le gestionnaire d'événements CloseRequest en utilisant le code suivant :

win.SetOnClosed(func() {
    fmt.Println("Window closed")
})

Lorsque l'utilisateur clique sur le bouton de fermeture, la fonction de rappel sera exécutée et nous pouvons effectuer ici certaines opérations nécessaires, telles que la sauvegarde des données, la fermeture de la connexion réseau, etc. . Dans cet exemple, nous imprimons simplement un message sur la console : "Fenêtre fermée".

Le code complet est le suivant :

package main

import (
    "fmt"
    "fyne.io/fyne"
    "fyne.io/fyne/widget"
)

func main() {
    // 创建应用程序
    app := fyne.NewApp("Hello World")

    // 创建窗口
    win := app.NewWindow("My Window")

    // 添加标题
    title := widget.NewLabel("My Window")
    win.SetTitleBar(widget.NewVBox(title))

    // 添加CloseRequest事件处理程序
    win.SetOnClosed(func() {
        fmt.Println("Window closed")
    })

    // 显示窗口
    win.ShowAndRun()
}

Lorsque le programme est exécuté, une fenêtre nommée "Ma fenêtre" s'affichera. Lorsque vous cliquez sur le bouton Fermer, un message « Fenêtre fermée » est affiché sur la console.

Conclusion

Cet article explique comment fermer une fenêtre en langage Go. Nous avons créé une application GUI à l'aide de la bibliothèque fyne et ajouté un gestionnaire d'événements CloseRequest à la fenêtre. Lorsque l'utilisateur clique sur le bouton de fermeture, la fonction de rappel est exécutée dans laquelle nous pouvons effectuer certaines opérations nécessaires. En maîtrisant ces bases, nous pouvons créer des applications GUI plus complexes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn