Heim  >  Artikel  >  Backend-Entwicklung  >  Drücken und halten Sie die Taste im Golang Fyne

Drücken und halten Sie die Taste im Golang Fyne

WBOY
WBOYnach vorne
2024-02-11 15:20:20527Durchsuche

golang fyne 中按住按钮

php-Editor Yuzai wird Ihnen die Techniken und die Verwendung des Drückens und Haltens von Tasten in Golang Fyne vorstellen. Fyne ist ein leichtes Framework zum Erstellen plattformübergreifender grafischer Benutzeroberflächen, und das Halten von Tasten ist eine wichtige Funktion. Durch Drücken und Halten der Taste kann der Benutzer eine Reihe kontinuierlicher Vorgänge ausführen, z. B. Ziehen, Zeichnen usw. In diesem Artikel wird ausführlich erläutert, wie die Tastendruckfunktion in Golang Fyne implementiert wird, und es werden praktische Codebeispiele und Betriebsschritte bereitgestellt, damit der Leser diese Technik schnell beherrschen kann. Unabhängig davon, ob Sie Anfänger oder erfahrener Entwickler sind, können Sie in diesem Artikel praktische Kenntnisse und Fähigkeiten erwerben und Ihre Entwicklungsfähigkeiten in Golang Fyne verbessern. Seien Sie gespannt auf weitere Inhalte!

Frageninhalt

Mit dem fyne GUI-Framework können Sie ganz einfach eine einfache GUI mit Grundfunktionen erstellen. Ich kann nicht erkennen, wann der Benutzer eine Taste über einen bestimmten Zeitraum gedrückt hält. Ich kann nur erkennen, ob auf die Schaltfläche geklickt wird. Ist das möglich?

Problemumgehung

Die Widgets in fyne nutzen am wahrscheinlichsten Funktionen. Wenn ein Widget nicht die erforderliche Funktionalität bietet, kann es erweitert werden. Hier können Sie ein Beispiel für anklickbare Symbole sehen. In diesem Beispiel wird die Schnittstelle fyne/v2.Tappable implementiert, die auch ein Icon enthält, was zu einem anklickbaren Icon führt.

Damit die Schaltfläche beibehalten werden kann, müssen wir eine Schnittstelle implementieren, die Mousedown- und Mouseup-Ereignisse registrieren kann. Diese Schnittstelle ist fyne/v2/driver/desktop.Mouseable.

So sieht es aus:

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

Es ist zu beachten, dass die Mouseable-Schnittstelle nicht namentlich angezeigt wird. Sie müssen nur das Treiberpaket importieren, um auf „desktop.MouseEvent“ zu verweisen. Aber wie bei Golang wird die Schnittstelle durch die Erstellung zweier Methoden, MouseUp und MouseDown, implementiert, die auch dann vorhanden sein müssen, wenn Sie nur eine „brauchen“, sonst funktioniert keine davon.

Vielen Dank an andy.xyz für den Hinweis.

Das obige ist der detaillierte Inhalt vonDrücken und halten Sie die Taste im Golang Fyne. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen