首页 > 解决方案 > 作者的代码有效,但我的无效 [Kivy]

问题描述

我正在从一本关于使用 Kivy 制作应用程序的书中学习,并且有这段代码:

from kivy.app import App
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout

class TestApp(App):
    press_count = 1
    def button_press(self, button_pressed):
        print('Button Pressed', TestApp.press_count, 'TImes')
        TestApp.press_count += 1

    def build(self):
        my_btn = Button(text='Click Me')
        my_btn.bind(on_press=TestApp.button_press)
        textinput = TextInput(text='Data Inside TextInput')
        box_layout = BoxLayout(orientation='vertical')
        box_layout.add_widget(widget=my_btn)
        box_layout.add_widget(widget=textinput)
        return box_layout

if __name__ == '__main__':
    TestApp().run()

当我运行它时,我可以理解TypeError: button_press() missing 1 required positional argument: 'button_pressed'我的问题是为什么这本书的作者没有收到这个错误并且代码运行?

标签: python-3.xkivy

解决方案


 my_btn.bind(on_press=TestApp.button_press)

这是错误的,应该是my_btn.bind(on_press=self.button_press)


推荐阅读