首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kivy -使用.kv

Kivy -使用.kv
EN

Stack Overflow用户
提问于 2015-06-02 19:41:44
回答 1查看 136关注 0票数 2

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

代码语言:javascript
复制
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()

kv:

代码语言:javascript
复制
<FloatLayout>:
    canvas:
        Rectangle:
            source: 'background.jpg'
            size: self.size
            pos: self.pos
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-02 20:34:23

下面是一个简单的示例,演示如何使用id进行操作。

代码语言:javascript
复制
BoxLayout:
    Button:
        text: 'press me'
        on_press: painter.do_something()
    FreeDraw:
        id: painter
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30605164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档