Maison > développement back-end > Golang > le corps du texte

Appuyez et maintenez le bouton dans Golang Fyne

WBOY
Libérer: 2024-02-11 15:20:20
avant
541 Les gens l'ont consulté

golang fyne 中按住按钮

l'éditeur php Yuzai vous présentera les techniques et l'utilisation de la pression et du maintien des boutons dans Golang Fyne. Fyne est un framework léger permettant de créer des interfaces utilisateur graphiques multiplateformes, et le fait d'appuyer et de maintenir un bouton en est une caractéristique importante. En appuyant longuement sur le bouton, l'utilisateur peut effectuer une série d'opérations continues, telles que glisser, dessiner, etc. Cet article expliquera en détail comment implémenter la fonction d'appui sur un bouton dans Golang Fyne et fournira des exemples de code pratiques et des étapes de fonctionnement pour aider les lecteurs à maîtriser rapidement cette technique. Que vous soyez un développeur débutant ou expérimenté, vous pouvez acquérir des connaissances et des compétences pratiques grâce à cet article et améliorer vos capacités de développement dans Golang Fyne. Restez à l'écoute pour le contenu de suivi !

Contenu de la question

En utilisant le framework fyne GUI, vous pouvez facilement créer une interface graphique simple avec des fonctionnalités de base. Je ne trouve pas de moyen de détecter le moment où l'utilisateur appuie et maintient un bouton enfoncé pendant un certain temps. Je ne peux détecter que si le bouton est cliqué. Est-ce possible?

Solution de contournement

Les widgets de fyne sont les plus susceptibles d'utiliser des fonctionnalités. Lorsqu'un widget ne fournit pas les fonctionnalités requises, il peut être étendu. Vous pouvez voir un exemple d'icônes cliquables ici. Dans cet exemple, l'interface fyne/v2.Tappable est en cours d'implémentation et contient également une icône, ce qui donne une icône cliquable.

Pour rendre le bouton conservable, nous devons implémenter une interface capable d'enregistrer les événements mousedown et mouseup. Cette interface est fyne/v2/driver/desktop.Mouseable.

Voici à quoi ça ressemble :

package main
import (
    "fyne.io/fyne/v2/app"
    "fyne.io/fyne/v2/widget"
    "fyne.io/fyne/v2/driver/desktop"
    "log"
)

type holdableButton struct {
    widget.Button
}
func newHoldableButton(label string) *holdableButton {
    button := &holdableButton{}
    button.ExtendBaseWidget(button)
    button.Text=label
    return button
}

func (h *holdableButton) MouseDown(*desktop.MouseEvent){
    log.Println("down")
}
func (h *holdableButton) MouseUp(*desktop.MouseEvent){
    log.Println("up")
}

func main() {
    a := app.New()
    w := a.NewWindow("Holdable")
    w.SetContent(newHoldableButton("Button"))
    w.ShowAndRun()
}
Copier après la connexion

Il convient de noter que l'interface Mouseable n'apparaîtra pas par son nom. Il vous suffit d'importer le package de pilotes pour référencer desktop.MouseEvent. Mais comme c'est le cas dans Golang, l'interface est implémentée en créant deux méthodes, MouseUp et MouseDown, qui doivent exister même si vous n'en avez "besoin" qu'une, sinon aucune d'entre elles ne fonctionnera.

Merci à andy.xyz de m'avoir orienté dans la bonne direction.

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!

source:stackoverflow.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal