私は次のようにkivy(KV)には非常に簡単な例をやろうとしています:Kivy - のKv - ScreenManagerの - 現在の画面を変更
#:import Toolbar kivymd.toolbar.Toolbar
BoxLayout:
orientation: 'vertical'
Toolbar:
id: toolbar
title: 'My Toolbar'
md_bg_color: app.theme_cls.primary_color
background_palette: 'Primary'
background_hue: '500'
left_action_items: [['arrow-left', app.root.ids.scr_mngr.current = 'screen1' ]]
right_action_items: [['arrow-right', app.root.ids.scr_mngr.current = 'screen2' ]]
ScreenManager:
id: scr_mngr
Screen:
name: 'screen1'
Toolbar:
title: "Screen 1"
Screen:
name: 'screen2'
Toolbar:
title: "Screen 2"
left_action_itemsとright_action_items両方がペアのリストを期待するので、これは失敗しますが:[name_of_icon、expression]。
left_action_items: [['arrow-left', lambda x: app.root.ids.scr_mngr.current = 'screen1' ]]
:一方
on_release:
app.root.ids.scr_mngr.current = 'screen1'
、left_action_itemための適切なアプローチのようなものになります:あなたは、ボタンを扱うとき一方、声明は、私たちが何かをすれば、インスタンスのための法的だろう
しかし、これはpythonの下でlambdaのようなassigmentを実行することはできませんので、法的ではありません。
left_action_itemsが画面を変更するための正しいアプローチは何でしょうか?
それは動作します。 ScreenManagerが次のようなことをする可能性を与えないのは残念です:set_screen( 'screen1') – mantielero
@mantieleroはあなたの質問に答えませんか? – EL3PHANTEN