from kivy.app import Appfrom kivy.uix.widget import Widgetfrom kivy.uix.label import Labelfrom kivy.clock import Clockfrom time import strftime, localtimefrom kivy.properties import StringProperty, ObjectProperty, NumericPropertyfrom kivy.config import Configfrom kivy.uix.gridlayout import GridLayoutfrom kivy.uix.floatlayout import FloatLayoutfrom kivy.uix.behaviors.focus import FocusBehaviorfrom kivy.uix.screenmanager import ScreenManager, Screen, SwapTransitionConfig.set('graphics', 'width', '1024')Config.set('graphics', 'height', '600')Config.write()screen = ScreenManager(transition=SwapTransition())#Layouts for each Widgetclass HomeUI(GridLayout):def multi_select(self):screen.current = 'multimedia'def radio_select(self):screen.current = 'radio'class MultimediaUI(GridLayout):def cd_select(self):screen.current = 'home'def usb_select(self):screen.current = 'home'def bluetooth_select(self):screen.current = 'home'class RadioUI(GridLayout):def fm_select(self):screen.current = 'home'def dab_select(self):screen.current = 'home'#Widgets in each Screenclass BMWHome(Widget):layout = ObjectProperty()class MultimediaHome(Widget):clock = StringProperty()layout = ObjectProperty()class RadioHome(Widget):clock = StringProperty()layout = ObjectProperty()class TimeLabel(Widget):clock = StringProperty()print(clock)#Screensclass HomeScreen(Screen):passclass MultimediaScreen(Screen):passclass RadioScreen(Screen):pass#Appclass BMWApp(App):timer = TimeLabel()def build(self):home = HomeScreen()home.add_widget(BMWHome())home.add_widget(TimeLabel())radio = RadioScreen()radio.add_widget(RadioHome())radio.add_widget(TimeLabel())multi = MultimediaScreen()multi.add_widget(MultimediaHome())multi.add_widget(TimeLabel())screen.add_widget(home)screen.add_widget(multi)screen.add_widget(radio)Clock.schedule_interval(self.update, 1)return screendef update(self,dt):self.timer.clock = strftime("%H:%M:%S", localtime())print(self.timer.clock)if __name__ == '__main__':BMWApp().run()
#:kivy 1.10.1<HomeScreen>:name: 'home'
<MultimediaScreen>:name: 'multimedia'<RadioScreen>:name: 'radio'<HomeUI>:cols: 1minimum_size: 1024,600col_default_width: 350row_default_height: 50row_force_default: 'true'spacing: 10padding: 450, -400Button:font_size: 30focus: Truetext: "Multimedia"background_color: 1,1,1,0.2text_size: self.sizehalign: 'left'padding: 9,9on_press: root.multi_select()Button:font_size: 30text: "Radio"background_color: 1,1,1,0.2text_size: self.sizehalign: 'left'padding: 9,9on_press: root.radio_select()Button:font_size: 30text: "Telefon"background_color: 1,1,1,0.2text_size: self.sizehalign: 'left'padding: 9,9Button:font_size: 30text: "Navigation"background_color: 1,1,1,0.2text_size: self.sizehalign: 'left'padding: 9,9Button:font_size: 30text: "Office"background_color: 1,1,1,0.2text_size: self.sizehalign: 'left'padding: 9,9Button:font_size: 30text: "Fahrzeuginfo"background_color: 1,1,1,0.2text_size: self.sizehalign: 'left'padding: 9,9Button:font_size: 30text: "Einstellungen"background_color: 1,1,1,0.2text_size: self.sizehalign: 'left'padding: 9,9<MultimediaUI>:cols: 1minimum_size: 1024,600col_default_width: 350row_default_height: 50row_force_default: 'true'spacing: 10padding: 450, -400Button:font_size: 30focus: Truetext: "CD"background_color: 1,1,1,0.2text_size: self.sizehalign: 'left'padding: 9,9on_press: root.cd_select()Button:font_size: 30text: "Mediendatei/USB"background_color: 1,1,1,0.2text_size: self.sizehalign: 'left'padding: 9,9on_press: root.usb_select()Button:font_size: 30text: "Bluetooth"background_color: 1,1,1,0.2text_size: self.sizehalign: 'left'padding: 9,9on_press: root.bluetooth_select()<RadioUI>:cols: 1minimum_size: 1024,600col_default_width: 350row_default_height: 50row_force_default: 'true'spacing: 10padding: 450, -400Button:font_size: 30focus: Truetext: "FM/AM"background_color: 1,1,1,0.2text_size: self.sizehalign: 'left'padding: 9,9on_press: root.fm_select()Button:font_size: 30text: "DAB+"background_color: 1,1,1,0.2text_size: self.sizehalign: 'left'padding: 9,9on_press: root.dab_select()<BMWHome>:layout: home_uicanvas:Color:hsv: 0,0.8,1Ellipse:pos: 100, self.center_y-50size: 100, 100HomeUI:id: home_ui<MultimediaHome>:layout: multi_uicanvas:Color:hsv: 0,0.8,1Ellipse:pos: 100, self.center_y-50size: 100, 100Label:font_size: 20center_x: root.center_xtop: root.toptext: root.clockMultimediaUI:id: multi_ui<RadioHome>:layout: radio_uicanvas:Color:hsv: 0,0.8,1Ellipse:pos: 100, self.center_y-50size: 100, 100Label:font_size: 20center_x: root.center_xtop: root.toptext: root.clockRadioUI:id: radio_ui<TimeLabel>:Button:font_size: 20background_color: 0,0,0,0size: 350,50pos: 430,500text: root.clock
FloatLayout:
ClockWidget:
pos_hint: 0.9, 0.1
size_hint: 0.1, 0.1
ScreenManager:
Screen:
name: "One"