具有kivy布局的类

时间:2016-12-20 00:02:18

标签: kivy kivy-language

我希望使用kivy语言定义一个小部件,但后来我想在类中添加函数。下面是我的天真尝试,当我点击按钮并显示消息" AttributeError:' MyButton'对象没有属性' second_pressed'"
如何使用函数和kivy语言定义一个类?

import sys
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout

root = Builder.load_string('''
BoxLayout:
    Label:
        text: 'hello'
    MyButton:

<MyButton@Button>:
    text: 'Second button'
    on_press: self.second_pressed()
''')

class MyButton():
    def second_pressed():
        print "second pressed"
        sys.stdout.flush()

class Tryit(App):
    def build(self):
        return root

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

1 个答案:

答案 0 :(得分:2)

var elements = ThisPage.FindElements(By.XPath(".//*[starts-with(@id, 'item')]/div[1]/table/tbody/tr[6]/td[4]"))

这动态地定义了一个名为<MyButton@Button>: new 类,它与您添加该方法的python代码中的MyButton无关。

要使其工作,请只编写MyButton,这表示现有类的规则。您可能还需要延迟<MyButton>:,直到宣布此课程为止 - 通常最好在App的Builder.load_string方法中执行此操作,因为所有重要内容都保证是在这一点初始化。