如何解决从派生的 kivy 类访问 Python 函数
我想要几个派生的 kivy
按钮在随附的 Python 程序中调用相同的函数。这里,两个按钮分别调用 root.butclick()
:
<Classtest>:
BoxLayout:
spacing: 1
orientation:'vertical'
canvas.before:
Color:
rgba: .8,.8,1
Rectangle:
size: self.size
pos: self.pos
Label
id: toplabel
color: 0,1,1
size_hint: (0.5,0.1)
text: 'Hi there'
GrayButton:
text: 'Hello'
on_press:
root.butclick(self.text)
GrayButton:
text: 'Goodbye'
on_press:
root.butclick(self.text)
这是派生的 GrayButton
类。它对 butclick()
的调用被注释掉了,因为它不能访问它,因为它不是 <Classtest>
类的一部分。
<GrayButton@Button>:
color: 0,1
background_normal: ''
size_hint: (0.5,0.1)
background_color: .9,.9,#on_press:
# root.butclick(self.text)
为了完整起见,这里是随附的 Python 代码
from kivy.app import App
from kivy.core.window import Window
from kivy.config import Config
from kivy.uix.Boxlayout import BoxLayout
class Classtest(BoxLayout):
def build(self):
self.title = "Test kivy classes"
# Add click event
def butclick(self,txt):
self.ids.toplabel.text = txt
class MainApp(App):
def build(self):
Window.size = (200,100)
self.load_kv('classtest.kv')
return Classtest()
MainApp().run()
如果您能建议 GrayButton 类本身调用 Python 程序中的 butclick
方法,请告诉我。我认为某种 ObjectProperty
可能会起作用,但我不知道它会如何工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。