1
このコードを実行すると黒い画面が表示されますが、ScreenManagerについてkivyドキュメントの例を使用するとうまくいきます。私もこのポストhttps://gist.github.com/tshirtman/d455671401ff4c694306の解決策を試みたが、それは私を働かせません。kivyスクリーンマネージャーを使用すると黒い画面
import os
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen, SlideTransition
from kivy.uix.widget import Widget
from kivy.uix.boxlayout import BoxLayout
VIEW = os.path.abspath(os.path.join(os.path.dirname(__file__), 'views', 'moorish.kv'))
class RootScreen(Screen):
pass
class Main(BoxLayout):
pass
class Header(BoxLayout):
pass
class SettingsScreen(Screen):
pass
class SettingsMain(Widget):
pass
class SettingsHeader(Widget):
pass
class Container(BoxLayout):
pass
class Circle(Widget):
pass
screen_manager = ScreenManager(transition=SlideTransition())
screen_manager.add_widget(RootScreen(name='main'))
screen_manager.add_widget(SettingsScreen(name='settings'))
class WifiApp(App):
def build(self):
Builder.load_file(VIEW)
return screen_manager
if __name__ == '__main__':
WifiApp().run()
、これは間違っている何が起こっているか.kvファイル
<Header>
orientation: 'horizontal'
rows: 1
cols: 1
Container:
canvas:
# Background
Color:
rgba: 1, 1, 1, 0.9
Rectangle:
pos: self.pos
size: self.size
Circle:
on_touch_down:
root.manager.transition.direction = 'right'
root.manager.current = 'settings'
id: 'Settings'
canvas:
Ellipse:
pos: self.x + 30, self.y + 15
size: 60, 60
source: 'logos/setting.png'
Circle:
id: 'Connected'
canvas:
Ellipse:
pos: self.x - 50, self.y + 15
size: 60, 60
source: 'logos/connected.png'
Label:
text: 'Wi-Fi Remote'
font_size: '18sp'
color: 0, 0, 0, .9
right: 10
<Main>
cols: 2
rows: 2
canvas:
# Outer Background
Color:
rgba: 1, 1, 1, 0.4
Rectangle:
pos: self.pos
size: self.size
Container:
canvas:
# Inner Background
Color:
rgba: 1, 1, 1, 0.9
Rectangle:
pos: self.center_x - 150, self.center_y - 175
size: 300, 350
Circle:
id: '1'
canvas:
Ellipse:
pos: self.center_x + 50, self.center_y + 25
size: 100, 100
source: 'logos/1.png'
Circle:
id: '2'
canvas:
Ellipse:
pos: self.center_x - 75, self.center_y - 100
size: 100, 100
source: 'logos/2.png'
Circle:
id: '3'
canvas:
Ellipse:
pos: self.center_x - 25, self.center_y + 25
size: 100, 100
source: 'logos/3.png'
Circle:
id: '4'
canvas:
Ellipse:
pos: self.center_x - 150, self.center_y - 100
size: 100, 100
source: 'logos/4.png'
<SettingsHeader>
orientation: 'horizontal'
rows: 1
cols: 1
Container:
canvas:
# Background
Color:
rgba: 1, 1, 1, 0.9
Rectangle:
pos: self.pos
size: self.size
Circle:
id: 'Settings'
canvas:
Ellipse:
pos: self.x + 30, self.y + 15
size: 60, 60
source: 'logos/pointer.png'
Label:
text: 'Settings'
font_size: '18sp'
color: 0, 0, 0, .9
right: 10
<SettingsMain>
cols: 2
rows: 2
canvas:
# Outer Background
Color:
rgba: 1, 1, 1, 0.4
Rectangle:
pos: self.pos
size: self.size
Container:
canvas:
# Inner Background
Color:
rgba: 1, 1, 1, 0.9
Rectangle:
pos: self.center_x - 150, self.center_y - 175
size: 300, 350
BoxLayout:
TextInput:
TextInput:
Button:
text: 'Save'
<RootScreen>
orientation: 'vertical'
cols: 1
Header:
size_hint: 1, 0.15
Main:
size_hint: 1, 0.85
<SettingsScreen>
orientation: 'vertical'
cols: 1
SettingsHeader:
size_hint: 1, 0.15
SettingsMain:
size_hint: 1, 0.85
のですか? ありがとうございました
ええ、その作業今、ありがとう:) yepはクラス名で余分な_を修正しました。 – Juggernaut