2016-09-27 15 views
1

間の黒い画面(ここではフルページへlinkだ)Kivy - 私はKivyで行われたこの<a href="https://kivy.org/docs/_images/screenmanager.gif" rel="nofollow">gif</a>をコピーしようとしている遷移

私が始めたのと同じように、私はlink(遷移間の黒い画面に気づきましたコピーペーストを実行する必要はありません)

なぜ黒い画面が表示されますか?

編集:ボタンなしで作業する必要があります。

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

# Create both screens. Please note the root.manager.current: this is how 
# you can control the ScreenManager from kv. Each screen has by default a 
# property manager that gives you the instance of the ScreenManager used. 
Builder.load_string(""" 
    <MenuScreen>: 
    canvas.before: 
     Color: 
      rgba: 122,255,0,2 
     Rectangle: 
      pos: self.pos 
      size: self.size 
    Label: 
     text: 'hello' 


<SettingsScreen>: 
    canvas.before: 
     Color: 
      rgba: 0,255,0,2 
     Rectangle: 
      pos: self.pos 
      size: self.size 
    Label: 
     text: 'hello' 
""") 

# Declare both screens 
class MenuScreen(Screen): 
    def on_touch_down(self, touch): 
     sm.current = 'settings' 

class SettingsScreen(Screen): 
    def on_touch_down(self, touch): 
     sm.current = 'menu' 

# 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() 

編集:私はこれを試してみましたが、まだ黒い領域は、画面マネージャのキャンバスであることを

<sm>: 
    canvas: 
     Color: 
      rgb: (0, 255, 255) 
     Rectangle: 
      size: self.size 
      pos: self.pos 

答えて

1

を働いていませんでした。あなたが黒で気に入らなければ、あなたが画面で行ったのと同じように、それをペイントすることができます。それを隠すにはトランジションタイプをNoTransitionに変更してください。

また、そのkv lang文字列内にスクリーンマネージャを構築することを検討する必要があります。

+0

正確にペイントするにはどうすればよいですか? これは私の最初のKivyプロジェクトなので、私には全く新しいものです。 – SnuKies

+0

@SnuKiesいくつかの画面を描いたコード例を提供しました。画面マネージャーにも同じ操作を行います。 – jligeza

+0

@jiligeza私は本当にできません。可能であれば、コードを提供するようお願いします。私が試したことは編集されています。 しかし、今は動作します。私はつまらないよ – SnuKies

1

Screenサブクラスを直接使用する必要はありません。コンポーネントを最初に追加する必要があります(たとえば、ボタンやレイアウトなど)。たとえば、RelativeLayoutを使用します。

Builder.load_string(""" 
<MenuScreen>: 
    RelativeLayout: 
     canvas.before: 
      Color: 
       rgba: 122,255,0,2 
      Rectangle: 
       pos: self.pos 
       size: self.size 
     Label: 
      text: 'hello' 


<SettingsScreen>: 
    RelativeLayout: 
     canvas.before: 
      Color: 
       rgba: 0,255,0,2 
      Rectangle: 
       pos: self.pos 
       size: self.size 
     Label: 
      text: 'hello' 
""") 
関連する問題

 関連する問題