具有kivy布局的类
我希望使用kivy语言定义一个小部件,但随后我想向类中添加函数。下面是我天真的尝试,当我单击带有消息“AttributeError:“MyButton”对象没有属性“second_pressed”的按钮时失败具有kivy布局的类,kivy,kivy-language,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 = Builde
如何创建一个具有函数和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()
导入系统
从kivy.app导入应用程序
从kivy.lang导入生成器
从kivy.uix.boxlayout导入boxlayout
root=Builder.load\u字符串(“”)
盒子布局:
标签:
短信:“你好”
我的按钮:
:
文本:“第二个按钮”
按:self.second按()
''')
类MyButton():
def秒_按下()
打印“第二次按下”
sys.stdout.flush()
类Tryit(应用程序):
def生成(自):
返回根
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
Tryit().run()
:
这将动态定义一个名为MyButton
的新类,该类与添加该方法的python代码中的MyButton
无关
要使其工作,只需编写:
,它表示现有类的规则。您可能还需要延迟Builder.load\u string
,直到声明该类之后-通常最好在应用程序的build
方法中执行此操作,因为所有重要的内容都保证在此时初始化
<MyButton@Button>: