gpt4 book ai didi

python - Kivy - 使用 .kv

转载 作者:太空宇宙 更新时间:2023-11-04 03:32:24 26 4
gpt4 key购买 nike

我正在尝试将我的小部件创建转移到 .kv 而不是我的 main.py。我怎样才能仍然引用我的 on_press 命令? painter 是另一个子部件,包含我想调用的函数,但是我不确定如何从 .kv 引用 painter.acceptshape。

class TestingApp(App):
def build(self):
parent = FloatLayout()

keepbtn = Button(pos= (10,10),text='Accept Shape',size_hint=(.25, .15),font_size=14, color=(0.960784, 1, 0.980392,1), background_normal = '',\
background_color= ( 0.0980392, 0.0980392, 0.439216,1), font_name='Exo2-Bold.otf')

restartbtn = Button(text='Restart',size_hint=(.2, .15),font_size=14, color=(0.960784, 1, 0.980392,1), background_normal = '',\
background_color= (0.0980392, 0.0980392, 0.439216,1), font_name='Exo2-Bold.otf')

renderbtn = Button(text = "Render Shape", size_hint=(.2, .15),font_size=14, color=(0.960784, 1, 0.980392,1), background_normal = '',\
background_color= ( 0.0980392, 0.0980392, 0.439216,1), font_name='Exo2-Bold.otf')

parent.add_widget(keepbtn)
parent.add_widget(restartbtn)
parent.add_widget(renderbtn)

# if free draw option
painter = FreeDraw()
keepbtn.bind(on_press=painter.acceptshape)
restartbtn.bind(on_press=painter.restart)
renderbtn.bind(on_press=painter.render)
parent.add_widget(painter)

# # if preloaded box
return parent

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

千伏:

<FloatLayout>:
canvas:
Rectangle:
source: 'background.jpg'
size: self.size
pos: self.pos

最佳答案

这是一个简单的例子,展示了如何使用 id 来做到这一点。

BoxLayout:
Button:
text: 'press me'
on_press: painter.do_something()
FreeDraw:
id: painter

关于python - Kivy - 使用 .kv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30605164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com