完美的功能代碼:爲什麼正確的.kv代碼使用screenmanager不工作時,我把它放在一個外部.kv文件?
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen, NoTransition
Builder.load_string("""
#:kivy 1.8
<StartScreen>:
BoxLayout:
Label:
text: "Press Button to"
Button:
text: "Start Server"
on_press:
root.start_server()
root.manager.current='stopscreen'
<StopScreen>:
BoxLayout:
Label:
text: "Press Button to"
Button:
text: "Stop Server"
on_press:
root.stop_server()
root.manager.current='startscreen'
""")
class StartScreen(Screen):
def start_server(self):
print('Server started.')
class StopScreen(Screen):
def stop_server(self):
print('Server stopped.')
sm = ScreenManager(transition=NoTransition())
sm.add_widget(StartScreen(name='startscreen'))
sm.add_widget(StopScreen(name='stopscreen'))
class MySpecialApp(App):
def build(self):
return sm
MySpecialApp().run()
現在,根據Kivy文檔,應該可以把這段代碼的開始加載的字符串,只要我做的到外部文件,myspecial.kv 我的屏幕留空,沒有按鈕,沒有文字。爲什麼是這樣,我如何才能使這個工作?