###前提・実現したいこと
Python初心者です。
Pythonとkivyを使ってMac上のアプリケーションを作りたいと思っています。
メニューバーのボタンを押すと、画面が切り替わるようにしたいです。
ボタンを押すと画像が消えて、かつ他のものを表示できれば切り替えになるんじゃないかと思ったので<現状>を考えてみました。
メニューバーは消さずに残したいです。
画像だけ消す方法、もっとスマートな方法があれば教えてください。
<現状>
- ターミナルから起動するとメニューバーが表示される。
- メニューバーのボタン(真ん中と右)を押すと別ファイルに定義されている画像が表示される。
- メニューバーのボタン(左側)を押すと、画像とメニューバーが消える
以上です。
よろしくお願いします。
###該当のソースコード(main.py)
Python
1import kivy 2kivy.require('1.7.3') 3from background import Bird2 4from bg import Bird3 5 6from kivy.app import App 7from kivy.uix.widget import Widget 8from kivy.graphics import Rectangle 9from kivy.core.window import Window 10from kivy.clock import Clock 11 12from kivy.properties import StringProperty, ListProperty 13Window.clearcolor=[0.999,0.89,0.999,1] 14 15class TextWidget(Widget): 16 text = StringProperty() 17 color = ListProperty([1,1,1,1]) 18 19 def __init__(self, **kwargs): 20 super(TextWidget, self).__init__(**kwargs) 21 self.text = 'start' 22 23 def buttonClicked(self): 24 self.clear_widgets() 25 26 def buttonClicked2(self): 27 bird3 = Bird3() 28 self.add_widget(bird3) 29 30 def buttonClicked3(self): 31 bird2 =Bird3() 32 self.add_widget(bird2) 33 34class TestApp(App,Widget): 35 def __init__(self, **kwargs): 36 super(TestApp, self).__init__(**kwargs) 37 self.title = 'Apomol' 38 39if __name__ == '__main__': 40 TestApp().run()
###該当のソースコード(background.py)
background.pyとbg.pyは同じ内容です。
Python
1from kivy.app import App 2from kivy.uix.button import Button 3from kivy.app import App 4from kivy.uix.widget import Widget 5from kivy.graphics import Rectangle 6from kivy.core.window import Window 7 8class Bird2(Widget): 9 10 def __init__(self, **kwargs): 11 super(Bird2, self).__init__(**kwargs) 12 self.text = 'start' 13 bird1 = Bird1() 14 self.add_widget(bird1) 15 16 17class Bird1(Widget): 18 def __init__(self): 19 super(Bird1, self).__init__() 20 21 22 self.canvas.add(Rectangle( 23 source='bird.png', 24 size=(100, 100), pos=(300, 100))) 25 26if __name__ == '__main__': 27 Bird2().run()
###該当のソースコード(test.kv)
TextWidget: # ルートに追加 <TextWidget>: BoxLayout: orientation: 'vertical' size: root.size # ラベル Label: size_hint_y: 0.7 id: label1 font_size: 20 text: root.text color: root.color BoxLayout: size_hint_y: 0.1 padding: 10,10,20, 10 Button: id: button1 text: "morning" font_size: 20 on_press: root.buttonClicked() # ボタンをクリックした時 Button: id: button2 text: "day" font_size: 20 on_press: root.buttonClicked2() # ボタンをクリックした時 Button: id: button3 text: "night" font_size: 20 on_press: root.buttonClicked3() # ボタンをクリックした時
###補足情報(言語/FW/ツール等のバージョンなど)
MacOS Sierra ver10.12
python 2.7.3
kivy
Xcode
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。