php小編魚仔將為大家介紹Golang Fyne中按住按鈕的技巧和使用方法。 Fyne是一個用於建立跨平台圖形使用者介面的輕量級框架,而按住按鈕則是其中的重要功能。透過按住按鈕,使用者可以實現一系列連續操作,如拖曳、繪圖等。本文將詳細說明如何在Golang Fyne中實現按住按鈕的功能,並提供實用的程式碼範例和操作步驟,幫助讀者快速掌握這項技巧。無論是初學者或有一定經驗的開發者,都能從本文中獲得實用的知識和技巧,提升自己在Golang Fyne中的開發能力。請關注後續內容!
使用 fyne GUI 框架,可以輕鬆建立具有基本功能的簡單 GUI。 我無法找到一種方法來檢測用戶按下並按住按鈕一段時間。我只能檢測按鈕是否被點擊。這有可能嗎?
fyne 中的小部件具有最可能使用的功能。當小部件不提供所需的功能時,可以對其進行擴充。 可以在此處查看圖示可點擊的範例。 在此範例中,介面fyne/v2.Tappable 正在實現,其中還包含一個圖標,這會導致可點擊的圖標。
為了讓按鈕可保持,我們需要實作一個接口,它可以註冊 mousedown 和 mouseup 事件。這個介面是fyne/v2/driver/desktop.Mouseable。
這就是它的樣子:
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() }
要注意的是:Mouseable介面不會透過名稱出現,只需要匯入驅動包即可引用desktop.MouseEvent。但與 golang 中的情況一樣,該介面是透過建立 MouseUp 和 MouseDown 這兩個方法來實現的,即使您只「需要」一個,這兩個方法也需要存在,否則這些都不起作用。
感謝 andy.xyz 為我指明了正確的方向。
以上是golang fyne 中按住按鈕的詳細內容。更多資訊請關注PHP中文網其他相關文章!