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 !
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?
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() }
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!