【问题标题】:Python/Kivy : pass a variable from one class to another classPython/Kivy:将变量从一个类传递到另一个类
【发布时间】:2017-12-01 11:04:31
【问题描述】:

我有一个类GroupScreen,它有一个变量self.abc = 10,那么如何在TreeviewGroup 类中获取这个变量值并传入这个查询cur.execute("SELECT * FROMtestWHEREid=?", (abc,))

class GroupScreen(Screen):
    groupName = ObjectProperty(None)
    popup = ObjectProperty(None)
    abc = ObjectProperty(None)

    def display_groups(self, instance):
        self.abc    =   10
        print(self.abc)
        if len(instance.text) > 0:
            self.popup = TreeviewGroup(self.abc)
            self.popup.open()

class TreeviewGroup(Popup):
    treeview = ObjectProperty(None)
    tv = ObjectProperty(None)

    def __init__(self, **kwargs):
        super(TreeviewGroup, self).__init__(**kwargs)
        self.tv = TreeView(root_options=dict(text=""),
                           hide_root=False,
                           indent_level=4)


        cur.execute("SELECT * FROM `test` WHERE `id`=?", (abc,))
        rows = cur.fetchall()
        print(rows)
        # rows = [(1, 'test1'), (2, 'test2'), (3, 'test3')]
        tree = []

        for r in rows:
            tree.append({'node_id': r[1], 'children': []})
        for branch in tree:
            populate_tree_view(self.tv, None, branch)
        self.remove_widgets()
        self.treeview.add_widget(self.tv)

    def remove_widgets(self):
        for child in [child for child in self.treeview.children]:
            self.treeview.remove_widget(child)

【问题讨论】:

    标签: python python-3.x python-2.7 kivy kivy-language


    【解决方案1】:

    abc 添加到您的__init__ 应该可以:

    class TreeviewGroup(Popup):
        treeview = ObjectProperty(None)
        tv = ObjectProperty(None)
    
        def __init__(self, abc, **kwargs): # note the `abc`
            ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      相关资源
      最近更新 更多