第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何讓小部件承認(rèn)它們真正可以處理哪些事件

如何讓小部件承認(rèn)它們真正可以處理哪些事件

Go
浮云間 2023-08-14 16:42:29
我對(duì) Go 和 Fyne 很陌生,對(duì) C++、Python 和其他 OO 語言都太熟悉了。我試圖為許多不同類型的 Fyne 小部件注入某些共同的行為,但我迷失了。例如,我需要在許多小部件(例如標(biāo)簽和按鈕)上創(chuàng)建變體,以允許我捕獲右鍵單擊(TapSecondary),以便我可以執(zhí)行一些特殊操作(通常是彈出一個(gè)菜單)。是的,我想要按鈕和標(biāo)簽等內(nèi)容上的彈出菜單;我什至想在輸入框中攔截它(即使我必須以這種方式自己實(shí)現(xiàn)粘貼。)我在網(wǎng)上找到了一個(gè)例子,它提供了這個(gè)功能,可以讓我攔截標(biāo)簽上的點(diǎn)擊:type TapLabel struct {   *widget.Label //composition    //function pointers to set to get events    OnTapped func() //`json:"-"`    OnTappedSecondary func() //`json:"-"`  (what are these for anyway?)}func NewTapLabelWithStyle(text string, alignment fyne.TextAlign, style fyne.TextStyle,                           tappedLeft func(), tappedRight func()) *TapLabel {   return &TapLabel{      widget.NewLabelWithStyle(text, alignment, style),      tappedLeft, tappedRight,   }}//somehow this catches right click. How?func (mc *TapLabel) TappedSecondary(pe *fyne.PointEvent) {    if mc.OnTappedSecondary != nil {        mc.OnTappedSecondary()    }}func (mc *TapLabel) Tapped(pe *fyne.PointEvent) {    if mc.OnTapped != nil {        mc.OnTapped()    }}所以,它有效。我可以調(diào)用 NewTapLabelWithStyle 并向其傳遞 tappedLeft 和 tappedRight 的函數(shù),當(dāng)我單擊標(biāo)簽時(shí)它們會(huì)被調(diào)用。問題是,如果我沒有在網(wǎng)上找到該代碼示例,我將永遠(yuǎn)不會(huì)知道或無法弄清楚 Label 允許您在組合結(jié)構(gòu)中定義 TappedSecondary 和 Taped 并以這種方式捕獲內(nèi)容。我需要在各種小部件上捕獲這些事件和其他事件,例如符文和鑰匙。在哪里可以找到小部件悄悄支持但在https://godoc.org/中未提及的函數(shù)名稱?我知道這與接口有關(guān),因?yàn)榇a示例提到,如果您沒有為 Tapped 和 TappedSecondary 創(chuàng)建定義,即使您只想要一個(gè),也不會(huì)起作用。某個(gè)地方有能力詢問每個(gè)小部件支持哪些接口并相應(yīng)地執(zhí)行操作,但是該機(jī)制是在哪里定義的?(Go 讓我懷念 C++,在 C++ 中,您可以定義一個(gè) Widget 類,并為其提供所有可能的鼠標(biāo)、按鍵等事件的虛擬鉤子,然后您可以根據(jù)需要進(jìn)行重寫并執(zhí)行操作,根據(jù)定義,這一切都是可見的。這看起來更加晦澀難懂。)
查看完整描述

1 回答

?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊

標(biāo)簽本身不支持點(diǎn)擊 - 您正在添加的代碼中添加該功能。任何實(shí)現(xiàn) Tappable的小部件都將在點(diǎn)擊事件時(shí)觸發(fā)。通過實(shí)現(xiàn)類似的接口,小部件可以自由地處理 Fyne 理解的任何事件。

這不是 Label 的“隱藏功能”,但它肯定可以更好地記錄下來。


查看完整回答
反對(duì) 回復(fù) 2023-08-14
  • 1 回答
  • 0 關(guān)注
  • 199 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)