2017-12-24 2 views
0

これは質問が完了していない場合、私は非常に申し訳ありません投稿している最初の質問です。kvファイルのスクリーンマネージャー

スクリーンマネージャのkivyの公式ページで例を試してみましたが、動作しますが、ビルダーの代わりにkvファイルを使用しようとすると、黒いページが表示されます。

Test.py

from kivy.app import App 
from kivy.lang import Builder 
from kivy.uix.screenmanager import ScreenManager, Screen 

class MenuScreen(Screen): 
    pass 

class SettingsScreen(Screen): 
    pass 

# Create the screen manager 
sm = ScreenManager() 
sm.add_widget(MenuScreen(name='menu')) 
sm.add_widget(SettingsScreen(name='settings')) 

class TestApp(App): 

    def build(self): 
     return sm 

if __name__ == '__main__': 
    TestApp().run() 

Test.kv

<MenuScreen>: 
    BoxLayout: 
     Button: 
      text: 'Goto settings' 
      on_press: root.manager.current = 'settings' 
     Button: 
      text: 'Quit' 

<SettingsScreen>: 
    BoxLayout: 
     Button: 
      text: 'My settings button' 
     Button: 
      text: 'Back to menu' 
      on_press: root.manager.current = 'menu' 
+1

あなたはタイトルを質問として定式化するか、何らかのエラーを表示する必要があります。私には、あなたが望むものは明らかに明確ではありません。あなたの質問は何ですか? –

+0

あなたの 'Test.kv'は' test.kv'でなければなりません(小文字) –

+0

2つのボタンが表示されますが、何も表示されません。 Test.kvをtest.kvに変更しても機能しません。 – Dean

答えて

0

あなたのtest.pyは、次のようになります。

from kivy.app import App 
from kivy.lang import Builder 
from kivy.uix.screenmanager import ScreenManager, Screen 

# Declare both screens 
class MenuScreen(Screen): 
    pass 

class SettingsScreen(Screen): 
    pass 

class TestApp(App): 
    pass 

if __name__ == '__main__': 
    TestApp().run() 

そして、あなたのtest.kvファイルは次のようになります。

#: kivy 1.10.0 

ScreenManager: 
    id: screen_manager 
    MenuScreen: 
     id: menu_screen 
     name: 'menu' 
     manager: 'screen_manager' 
    SettingsScreen: 
     id: settings_screen 
     name: 'settings' 
     manager: 'screen_manager' 

<MenuScreen>: 
    BoxLayout: 
     Button: 
      text: 'Goto settings' 
      on_press: app.root.current = 'settings' 
     Button: 
      text: 'Quit' 

<SettingsScreen>: 
    BoxLayout: 
     Button: 
      text: 'My settings button' 
     Button: 
      text: 'Back to menu' 
      on_press: app.root.current = 'menu' 
関連する問題