什么可能的回调触发器可用于kivy手风琴项目更改?

时间:2016-06-21 10:50:27

标签: accordion kivy

在我的应用程序中,我动态构建一个Accordion小部件并保留一个索引列表:

            acc_panel = self.ids.acc_panel
            tpitem = string.Template('''
AccordionItem:
    id: '$acc_id'
    title: '$acc_title'
    font_name: 'Roboto'
    min_space: 30
    RstDocument:
        background_color: 1, 1, 1, 1
        source: '$rstdoc'
            ''')

            for idx in range(0, self.totevents):
                event = str(idx + 1)
                acc_id = 'acc_' + event
                evidx = 'Event' + event + ':'
                rstdoc = qglobals.PROJDIR + tempInstrData[evidx]['RstDoc:']
                acc_title = str(tempInstrData[evidx]['Instruction:'])

                new_acc = tpitem.substitute(vars())
                acc = Builder.load_string(new_acc)
                acc_panel.add_widget(acc)

            n = len(acc_panel.children)
            for i in range (0,n):
                acc_panel.children[i].collapse = True
                acclabel[i+1] = n-1-i
            acc_panel.children[n-1].collapse = False
            accactive = 1
            activeEvent = 1
            self.change_accitem()

在相关的kv文件中我有:

    Accordion:
        id: acc_panel
        orientation: 'vertical'
        min_space: 30
        font_name: 'Roboto'

现在我想通过将新项绑定到回调函数来为AccordionItem更改添加一些操作。我试图使用属性:on_collapse但是那个不起作用。这有什么可能性?

1 个答案:

答案 0 :(得分:2)

AccordionItem有一个名为collapse的属性。这就是你绑定的内容:

ai = AccordionItem()
ai.bind(collapse=my_callback)

在类中自动调用的事件处理程序称为on_<property_name>,但是bind<property_name>。 (另见properties and events。)