私はKivyとPythonが初めてで、Instagram Layoutインターフェイスに基づいたアプリケーションを開発しようとしています。関数lambdaはkivyを使用してループまたはループにアクセスできますか?
最初に私は私がイメージボタンを作成するようになりますクラスのImageButtonを定義した:
class ImageButton(ButtonBehavior, Image):
pass
それから私は、グリッド内の画像ボタンを作成するには、このクラスを使用していました。
class AllImage(BoxLayout):
# screen_manager = ObjectProperty()
def __init__(self, **kwargs):
BoxLayout.__init__(self, **kwargs)
self.orientation='vertical'
self.sizable_from = 'top'
splitter = Splitter(sizable_from = 'bottom')
root = ScrollView()
gridtest = GridLayout(cols=2, spacing=10)
layout = GridLayout(cols=4, spacing=10)
self.add_widget(splitter)
super(AllImage, self).__init__(**kwargs)
for im in IMAGES_NAMES:
if IMAGES_NAMES != None :
btn = ImageButton(source = im+'.png')
btn.bind(on_press= lambda a:gridtest.add_widget(ImageButton(source = im+'.png')))
layout.add_widget(btn)
splitter.add_widget(gridtest)
root.add_widget(layout)
self.add_widget(root)
私の現在の目標は、私がIMAGEBUTTONに押したときに、グリッドgridtest
にグリッドlayout
でのImageButtonを追加することです: はここに私のコードです。
私は私が第二グリッドが、第一グリッドの最後の画像に押されたイメージを持っていないのImageButtonを押したとき、私が今直面しています問題はbtn.bind(on_press= lambda a:gridtest.add_widget(ImageButton(source = im+'.png')))
です。
私はループにアクセスすることができず、ループを実行できないため、ラムダから問題が発生していると思います。 解決策は何ですか?
ありがとう:Dを –