練習プログラムを作っていた際に気になったことを質問させてください。
HomeScreenからScreen1へと移動しさらにFrameOneへと移動しHomeボタンでHomeScreenへ戻ったとします。
2度目をやろうとするとScreen1を飛ばしFrameOneへ飛んでしまいます。
self.clear_widgets()を実行したため?だと思いました。
Screen1を再び表示するにはどうしたらよいでしょうか?
ご存知でしたら教えてください。
プログラムの構成は
HomeScreen
│
+Screen1+FrameOne
│
+Screen2
Python
1main.py 2 3~省略~ 4class HomeScreen(Screen): 5 pass 6 7class Screen1(Screen): 8 def go_to_next(self): 9 self.clear_widgets() 10 frame_one = Factory.FrameOne() 11 self.add_widget(frame_one) 12 13class Screen2(Screen): 14 pass 15 16class MainRoot(BoxLayout): 17 pass 18 19class MainApp(App): 20 def home_clicked(self): 21 SM.current = "Home" 22 def s1_clicked(self): 23 SM.current = "One" 24 def s2_clicked(self): 25 SM.current = "Two" 26 def build(self): 27 SM.add_widget(HomeScreen(name="Home")) 28 SM.add_widget(Screen1(name="One")) 29 SM.add_widget(Screen2(name="Two")) 30 return SM 31~省略~
main.kv #:kivy 1.10.0 #: import sys sys MainRoot: HomeScreen <HomeScreen>: BoxLayout: orientation: "vertical" Button: text: "Screen1" on_press: app.s1_clicked() Button: text: "Screen2" on_press: app.s2_clicked() <Screen1>: BoxLayout: orientation: "vertical" Label: size_hint_y: 0.3 text: "Screen1" Button: text: "Next" on_press: self.parent.parent.go_to_next() home_Button: text: "Home" <FrameOne@BoxLayout>: orientation: "vertical" Button: text: "Next" home_Button: text: "Home" <Screen2>: BoxLayout: orientation: "vertical" Label: size_hint_y: 0.3 text: "Screen2" Button: text: "Factory2-1" home_Button: text: "Home" ~省略~
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。