1 回答

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
of被調(diào)用兩次__init__()。當(dāng)您的方法被調(diào)用并執(zhí)行時(shí)GPIOButton一次。這將創(chuàng)建通過規(guī)則出現(xiàn)在 GUI 中的。該方法在您的類中執(zhí)行時(shí)會(huì)再次調(diào)用。第二次調(diào)用創(chuàng)建的實(shí)例不會(huì)出現(xiàn)在 GUI 中,但它是該方法中引用的實(shí)例。build()self.root = LifterGUI()GPIOButtonkv__init__()ok_btn = GPIOButton(btn_gpio_pin = ok_btn_pin)LeftSidebarGPIOButtonupdate()
GPIOButton由于您已經(jīng)在 中設(shè)置了對(duì) 的引用kv,因此您可以修改該類LeftSidebar以使用該引用:
class LeftSidebar(FloatLayout):
ok_btn_button = ObjectProperty(None)
def __init__(self, **kwargs):
super(LeftSidebar, self).__init__(**kwargs)
print("LeftSidebar __init__ called")
def update(self, dt):
#print("LeftSidebar update() called")
self.ok_btn_button.update(dt)
ok_btn_button在 your和kvtheok_btn_button中設(shè)置對(duì) 中內(nèi)置的 的LeftSidebar引用。這樣您就可以參考類中使用的按鈕。GPIOButtonkvself.ok_btn_buttonLeftSidebar
請(qǐng)注意,您的LifterGUI.
添加回答
舉報(bào)