質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

2606閲覧

Kivyのclear_widgetで消したしまった物を再表示するには。

mathing

総合スコア19

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/01/25 12:10

練習プログラムを作っていた際に気になったことを質問させてください。
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" ~省略~

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

一度、clear_widgets()したものは、オブジェクトとして破棄されると思いますので、
もし改めて利用したい場合は、frame_oneを追加したような手順をあらためて行うしかないかと思います。

https://kivy.org/docs/api-kivy.uix.screenmanager.html

投稿2018/01/27 22:46

dario_okazaki

総合スコア282

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問