Drücken und halten Sie die Taste im Golang Fyne

WBOY
Freigeben: 2024-02-11 15:20:20
nach vorne
537 Leute haben es durchsucht

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()
}
Nach dem Login kopieren

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!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage