[英]python screenmanager (kivy)
`from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout
from kivy.uix.screenmanager import ScreenManager, Screen
class Login(Screen):
def main(self):
layout = GridLayout()
def btn():
sm.switch_to(Screen(name='account'))
self.bt = Button(text='tela 1',
size_hint=(None,None),
size=(592,86),
pos=(50,50), on_press=btn,
background_color=(1,0,0,0))
layout.add_widget(self.bt)
return layout
class Account(Screen):
def main2(self):
lt = GridLayout()
def btnn():
sm.switch_to(Screen(name='login'))
self.btt = Button(text='telaa 2',
size_hint=(None,None),
size=(592,86),
pos=(50, 50), on_press=btnn,
background_color=(1,0,0,0))
lt.add_widget(self.btt)
return lt
sm = ScreenManager()
sm.add_widget(Login(name='login'))
sm.add_widget(Account(name='account'))
class TestApp(App):
def build(self):
return sm
if _name_ == '_main_':
TestApp().run()
`我今天入手了kivy,不過只是個路過的小說,沒打算學kivy語言。
我在網上看到的所有關於屏幕管理器的教程都使用kivy語言。 如何僅使用 python 滾動瀏覽 2 個屏幕? 我試圖將 kivy 語言翻譯成 python,但我得到的只是黑屏。
這是使用 Python 代碼(不是 kv 語言)創建帶有Button
的Screen
的最小示例,該按鈕在屏幕管理器中更改屏幕。
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.boxlayout import BoxLayout
# Declare both screens
class MenuScreen(Screen):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.layout = BoxLayout()
self.add_widget(self.layout)
self.label = Label(text='Menu Screen')
self.layout.add_widget(self.label)
self.button = Button(text='Go To Settings')
self.button.bind(on_press=self.change_screen)
self.layout.add_widget(self.button)
def change_screen(self, event):
#sm.current = 'settings'
self.manager.transition.direction = 'up'
self.manager.transition.duration = 3 # 3 seconds
self.manager.current = 'settings'
class SettingsScreen(Screen):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.layout = FloatLayout()
self.add_widget(self.layout)
self.label = Label(text='Settings Screen')
self.layout.add_widget(self.label)
self.button = Button(text='Go To Menu', size_hint=(.5, .10), pos=(20, 20))
self.button.bind(on_press=self.change_screen)
self.layout.add_widget(self.button)
def change_screen(self, event):
#sm.current = 'menu'
self.manager.transition.direction = 'right'
self.manager.transition.duration = 0.5 # 0.5 second
self.manager.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()
基於文檔屏幕管理器中的示例(使用 kv 語言)
你必須學習kv語言。
Kivy 語言是一種專用於描述用戶界面和交互的語言。 您可以將此語言與 Qt 的 QML ( http://qt.nokia.com ) 進行比較,但我們包含了諸如規則定義之類的新概念,因此您可能知道一些新概念。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.