Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tekan dan tahan butang dalam golang fyne

Tekan dan tahan butang dalam golang fyne

WBOY
WBOYke hadapan
2024-02-11 15:20:20525semak imbas

golang fyne 中按住按钮

editor php Yuzai akan memperkenalkan kepada anda teknik dan penggunaan menekan dan menahan butang dalam Golang Fyne. Fyne ialah rangka kerja ringan untuk membina antara muka pengguna grafik merentas platform, dan butang tekan dan tahan adalah ciri pentingnya. Dengan menekan dan menahan butang, pengguna boleh melakukan beberapa siri operasi berterusan, seperti menyeret, melukis, dsb. Artikel ini akan menerangkan secara terperinci cara melaksanakan fungsi tekan butang dalam Golang Fyne, dan menyediakan contoh kod praktikal dan langkah operasi untuk membantu pembaca menguasai teknik ini dengan cepat. Sama ada anda seorang pemula atau pembangun yang berpengalaman, anda boleh memperoleh pengetahuan dan kemahiran praktikal daripada artikel ini dan meningkatkan keupayaan pembangunan anda di Golang Fyne. Nantikan kandungan susulan!

Kandungan soalan

Menggunakan rangka kerja GUI fyne, anda boleh membina GUI ringkas dengan fungsi asas dengan mudah. Saya tidak dapat mencari cara untuk mengesan apabila pengguna menekan dan menahan butang untuk tempoh masa tertentu. Saya hanya boleh mengesan jika butang itu diklik. Adakah ini mungkin?

Penyelesaian

Widget dalam fyne mempunyai kemungkinan besar menggunakan fungsi. Apabila widget tidak menyediakan fungsi yang diperlukan, ia boleh dilanjutkan. Anda boleh melihat contoh ikon yang boleh diklik di sini. Dalam contoh ini, antara muka fyne/v2.Tappable sedang dilaksanakan yang turut mengandungi ikon, yang menghasilkan ikon boleh klik.

Untuk menjadikan butang itu boleh dikekalkan, kita perlu melaksanakan antara muka yang boleh mendaftarkan acara tetikus turun dan tetikus. Antara muka ini adalah fyne/v2/driver/desktop. Boleh tetikus.

Beginilah rupanya:

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

Perlu diambil perhatian bahawa antara muka Boleh Tetikus tidak akan muncul mengikut nama Anda hanya perlu mengimport pakej pemacu ke desktop rujukan.MouseEvent. Tetapi seperti yang berlaku dalam golang, antara muka dilaksanakan dengan mencipta dua kaedah, MouseUp dan MouseDown, yang perlu wujud walaupun anda hanya "memerlukan" satu, jika tidak, tiada satu pun daripada ini akan berfungsi.

Terima kasih kepada andy.xyz kerana menunjukkan saya ke arah yang betul.

Atas ialah kandungan terperinci Tekan dan tahan butang dalam golang fyne. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam