對不起,我的基本問題,但我一直在尋找一個小時的答案沒有用。Kivy如何訪問小部件的功能,沒有KV只是python代碼
這是我的基本代碼:
class LoginScreen(Screen):
def __init__(self,**kwargs):
super(LoginScreen,self).__init__(**kwargs)
l = BoxLayout(orientation='vertical')
sound_btn = Button(text="Play Sound", font_size = 300)
word_bx = TextInput(multiline=False,hint_text='type here...',font_size=300)
submit_btn = Button(text = 'Submit', font_size=300)
submit_btn.bind(on_press = self.submitAction)
l.add_widget(sound_btn)
l.add_widget(word_bx)
l.add_widget(submit_btn)
self.add_widget(l)
def submitAction(self,*args):
if self.word_bx.text == KivyApp.word:
KivyApp.point+=1
self.word_bx.text=""
KivyApp.i +=1
print(KivyApp.point)
正如你所看到的,在submitAction功能我想引用word_bx部件,但是,這將引發一個錯誤,指出類LoginPage有沒有屬性word_bx。然後,我試圖將「自我」放在自我的前面,但又引發了另一個錯誤。我究竟做錯了什麼?對不起我的無能..
您好感謝您的答案,這是不是解決辦法。我必須將文本框添加到佈局小部件,我不能僅僅聲明它爲自己的kivy不喜歡那樣。 –
您將錯誤報告爲Class LoginPage沒有屬性word_bx。我解釋了原因。我不明白「我不能僅僅因爲自己的kivy不喜歡這樣就宣佈它。」 Kivy無法判斷您的變量是否聲明爲self.word_bx或word_bx。你能更清楚一些基維不喜歡的東西嗎?在你使AttributeError消失之後,你會得到什麼其他的錯誤? – BoarGules
是的,但如果我做'self.word_bx'我得到一個錯誤,說該類沒有屬性word_bx。我認爲它是我的錯,因爲我沒有給你看整個代碼,我不建立這個類,它是屏幕管理器的一部分,否則我認爲你的解決方案會起作用。 –