Python kivy链接复选框从应用程序到。

2024-05-16 22:09:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我是kivy的新用户。在

我需要从.kv接口链接一个复选框,以便它对底层python应用程序产生影响。在

我为我的应用程序尝试了以下代码:

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.factory import Factory
from kivy.properties import ObjectProperty
from kivy.uix.popup import Popup
from kivy.uix.checkbox import CheckBox

import os

class LoadDialog(FloatLayout):
    load = ObjectProperty(None)
    cancel = ObjectProperty(None)


class Root(FloatLayout):
    loadfile = ObjectProperty(None)
    checkbox = CheckBox()

    def dismiss_popup(self):
        self._popup.dismiss()

    def show_load(self):
        content = LoadDialog(load=self.load, cancel=self.dismiss_popup)
        self._popup = Popup(title="Load file", content=content, size_hint=(0.9, 0.9))
        self._popup.open()

    def load(self, path, filename):
        print 'user chose: %s' % os.path.join(path, filename[0])
        print self.checkbox.active

        self.dismiss_popup()

    def activate_checkbox(self):
        print 'activate checkbox'
        self.checkbox._toggle_active()


class Chooser(App):
    pass


Factory.register('Root', cls=Root)
Factory.register('LoadDialog', cls=LoadDialog)

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

使用以下chooser.kv文件:

^{pr2}$

不幸的是,这没有用:CheckBox用户界面元素的状态似乎对根类中CheckBox的状态没有任何影响。在

有什么简单的方法把两者联系起来吗?在


Tags: fromimportselffactorydefloadpopupcheckbox