2017-04-07 5 views
0

docsでは、args_converterは通常の関数またはラムダ関数として書くことができますが、私はそれが非ラムダ1で動作するように見えることはできません、そして、私が見るすべての例はlambdaです。非ラムダargs_converter関数を定義する方法は?

は、ここに私のコードの一部です:

def groupArgsConv(index, item): 
    res = {'text': item['title'], 
       'size_hint_y': None, 
       'heigth': '25dp'} 
    return res 

self.ids.grouplist.adapter = ListAdapter(args_converter=groupArgsConv, 
              data=self.groups, 
              cls=ListItemLabel) 

これは動作しませんが、これはありません:

list_item_args_converter = lambda index, item: {'text': item['title'], 
              'size_hint_y': None, 
              'height': '25dp'} 

self.ids.grouplist.adapter = ListAdapter(args_converter=list_item_args_converter, 
              data=self.groups, 
              cls=ListItemLabel) 

なぜ?どのように私は最初の例を動作させるのですか?

答えて

0

このコードは、私の作品:

from kivy.adapters.listadapter import ListAdapter 
from kivy.uix.listview import ListItemLabel, ListView 
from kivy.base import runTouchApp 

data = [{'title': str(i)} for i in range(100)] 

def groupArgsConv(index, item): 
    res = {'text': item['title'], 
      'size_hint_y': None, 
      'height': '25dp'} 
    return res 

list_adapter = ListAdapter(
    data=data, 
    args_converter=groupArgsConv, 
    cls=ListItemLabel) 

if __name__ == '__main__': 
    runTouchApp(ListView(adapter=list_adapter)) 

あなたが「動作しない」とはどういう意味ですか?ログに例外または奇妙な出力の何人かのkinfがありますか?

関連する問題