Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 9.60 KB | None | 0 0
  1. from kivy.app import App
  2. from kivy.lang import Builder
  3. from kivy.properties import ObjectProperty
  4. from kivy.uix.boxlayout import BoxLayout
  5. from kivymd.theming import ThemeManager
  6. from kivy.uix.popup import Popup
  7. from kivy.uix.screenmanager import ScreenManager, Screen
  8. from kivymd.card import MDCardPost
  9. from kivymd.menu import MDDropdownMenu
  10. from kivymd.navigationdrawer import NavigationLayout
  11. from kivymd.navigationdrawer import NavigationDrawerIconButton
  12. from kivymd.toast import toast
  13.  
  14. class MyLayout(BoxLayout):
  15.  
  16.     scr_mngr = ObjectProperty(None)
  17.     def check_data_login(self):
  18.         username = self.scr_mngr.screen1.username.text
  19.         password = self.scr_mngr.screen1.password.text
  20.  
  21.         print(username)
  22.         print(password)
  23.         if username == "KivyMD" and password == "kivy":
  24.             self.ids["wrongpass"].text = ""
  25.             self.change_screen("screen2")
  26.         else:
  27.             self.ids["wrongpass"].text = "Wrong username or password, please try again"
  28.  
  29.     def change_screen(self, screen, *args):
  30.         self.scr_mngr.transition.direction = 'left'
  31.         self.scr_mngr.current = screen
  32.  
  33.     def back_to_chat(self):
  34.         self.scr_mngr.transition.direction = 'right'
  35.         self.scr_mngr.current = 'screen2'
  36.  
  37.        
  38. class nav_layout(NavigationLayout):
  39.     def print_text(self):
  40.         print('hello')
  41.  
  42.     def check_data_login(self):
  43.         username = self.ids.screen1.username.text
  44.         password = self.ids.screen1.password.text
  45.  
  46.         print(username)
  47.         print(password)
  48.         if username == "KivyMD" and password == "kivy":
  49.             self.change_screen("screen2")
  50.             self.ids.wrongpass.text = ""
  51.         else:
  52.             self.ids.wrongpass.text = "Wrong username or password, please try again"
  53.    
  54.     def change_screen(self, screen, *args):
  55.         self.ids.scr_mngr.transition.direction = 'left'
  56.         self.ids.scr_mngr.current = screen
  57.  
  58.     def back_to_chat(self):
  59.         self.ids.scr_mngr.transition.direction = 'right'
  60.         self.ids.scr_mngr.current = 'screen2'
  61.  
  62.     def logout(self):
  63.         #logout function, returns to screen 1
  64.         self.ids.scr_mngr.current = 'screen1'
  65.    
  66.  
  67.  
  68. KV = """
  69. #:import Toolbar kivymd.toolbar.Toolbar
  70. #:import ThemeManager kivymd.theming.ThemeManager
  71. #:import MDNavigationDrawer kivymd.navigationdrawer.MDNavigationDrawer
  72. #:import NavigationLayout kivymd.navigationdrawer.NavigationLayout
  73. #:import NavigationDrawerDivider kivymd.navigationdrawer.NavigationDrawerDivider
  74. #:import NavigationDrawerToolbar kivymd.navigationdrawer.NavigationDrawerToolbar
  75. #:import NavigationDrawerSubheader kivymd.navigationdrawer.NavigationDrawerSubheader
  76. #:import MDCheckbox kivymd.selectioncontrols.MDCheckbox
  77. #:import MDSwitch kivymd.selectioncontrols.MDSwitch
  78. #:import MDDropdownMenu kivymd.menu.MDDropdownMenu
  79. #:import MDList kivymd.list.MDList
  80. #:import OneLineListItem kivymd.list.OneLineListItem
  81. #:import TwoLineListItem kivymd.list.TwoLineListItem
  82. #:import ThreeLineListItem kivymd.list.ThreeLineListItem
  83. #:import OneLineAvatarListItem kivymd.list.OneLineAvatarListItem
  84. #:import OneLineIconListItem kivymd.list.OneLineIconListItem
  85. #:import OneLineAvatarIconListItem kivymd.list.OneLineAvatarIconListItem
  86. #:import MDTextField kivymd.textfields.MDTextField
  87. #:import MDSpinner kivymd.spinner.MDSpinner
  88. #:import MDCard kivymd.card.MDCard
  89. #:import MDSeparator kivymd.card.MDSeparator
  90. #:import MDDropdownMenu kivymd.menu.MDDropdownMenu
  91. #:import get_color_from_hex kivy.utils.get_color_from_hex
  92. #:import colors kivymd.color_definitions.colors
  93. #:import SmartTile kivymd.grid.SmartTile
  94. #:import MDSlider kivymd.slider.MDSlider
  95. #:import MDTabbedPanel kivymd.tabs.MDTabbedPanel
  96. #:import MDTab kivymd.tabs.MDTab
  97. #:import MDProgressBar kivymd.progressbar.MDProgressBar
  98. #:import MDAccordion kivymd.accordion.MDAccordion
  99. #:import MDAccordionItem kivymd.accordion.MDAccordionItem
  100. #:import MDAccordionSubItem kivymd.accordion.MDAccordionSubItem
  101. #:import MDThemePicker kivymd.theme_picker.MDThemePicker
  102. #:import MDBottomNavigation kivymd.tabs.MDBottomNavigation
  103. #:import MDBottomNavigationItem kivymd.tabs.MDBottomNavigationItem
  104. #:import CardTransition kivy.uix.screenmanager.CardTransition
  105. #:import partial functools.partial
  106. #:import MDDropdownMenu kivymd.menu.MDDropdownMenu
  107. #:import MDNavigationDrawer kivymd.navigationdrawer.MDNavigationDrawer
  108. #:import NavigationDrawerSubheader kivymd.navigationdrawer.NavigationDrawerSubheader
  109. #:import MDNavigationDrawer kivymd.navigationdrawer.MDNavigationDrawer
  110. #:import NavigationLayout kivymd.navigationdrawer.NavigationLayout
  111. #:import NavigationDrawerDivider kivymd.navigationdrawer.NavigationDrawerDivider
  112. #:import NavigationDrawerToolbar kivymd.navigationdrawer.NavigationDrawerToolbar
  113. #:import NavigationDrawerSubheader kivymd.navigationdrawer.NavigationDrawerSubheader
  114.  
  115. nav_layout:
  116.    id: nav_layout
  117.    MDNavigationDrawer:
  118.        id: nav_drawer
  119.        drawer_logo: 'logo.png'
  120.        NavigationDrawerToolbar:
  121.            title: 'hello'
  122.        NavigationDrawerIconButton:
  123.            icon: 'settings'
  124.            text: 'Account Settings'
  125.            on_release: root.change_screen('screen3')
  126.        NavigationDrawerIconButton:
  127.            icon: 'face'
  128.            text: 'Friends'
  129.            on_release: root.print_text()
  130.        NavigationDrawerIconButton:
  131.            icon: 'logout'
  132.            text: 'Logout'
  133.            on_release: root.logout()
  134.        NavigationDrawerDivider:
  135.            height: dp(1)
  136.    MyLayout:
  137.        scr_mngr: scr_mngr
  138.        orientation: 'vertical'
  139.  
  140.  
  141.        ScreenManager:
  142.            
  143.            transition: CardTransition()
  144.            id: scr_mngr
  145.            screen1: screen2
  146.  
  147.            Screen:
  148.                id: screen1
  149.                name: 'screen1'
  150.                username: username
  151.                password: password
  152.  
  153.                BoxLayout:
  154.                    size_hint: None, None
  155.                    size: dp(520), dp(340)
  156.                    pos_hint: {'center_x': 0.5, 'center_y': 0.5}
  157.  
  158.                    BoxLayout:
  159.                        orientation:'vertical'
  160.                        padding: dp(20)
  161.                        spacing:20
  162.  
  163.                        MDLabel:
  164.                            text: 'Chat App'
  165.                            theme_text_color: 'Secondary'
  166.                            font_style:"Title"
  167.                            size_hint_y: None
  168.                            height: dp(36)
  169.  
  170.                        MDSeparator:
  171.                            height: dp(1)
  172.  
  173.                        MDTextField:
  174.                            id: username
  175.                            hint_text: "Username "
  176.                            helper_text_mode: "on_focus"
  177.  
  178.                        MDTextField:
  179.                            id: password
  180.                            hint_text: "Password "
  181.                            helper_text_mode: "on_focus"
  182.                            password: True
  183.  
  184.                        MDFlatButton:
  185.                            text: "Login"
  186.                            pos_hint: {'center_x': 0.5}
  187.                            on_release: root.check_data_login()
  188.  
  189.                        MDLabel:
  190.                            id: wrongpass
  191.                            color: 1,0,1,1
  192.                            text: ""
  193.  
  194.  
  195.            
  196.            Screen:
  197.                name: 'screen2'
  198.                id: screen2
  199.  
  200.                Toolbar:
  201.                    id: toolbar
  202.                    title: "Welcome ! "
  203.                    pos_hint: {'center_x': 0.5, 'center_y': 0.96}
  204.                    md_bg_color: app.theme_cls.primary_color
  205.                    background_palette: 'DeepPurple'
  206.                    background_hue: 'A400'
  207.                    left_action_items: [['menu', lambda x: app.root.toggle_nav_drawer() ]]
  208.                    right_action_items: [['animation', lambda x: MDThemePicker().open()], ['camera', lambda x: print('hello')]]
  209.  
  210.                MDLabel:
  211.                    font_style: 'Title'
  212.                    theme_text_color: 'Primary'
  213.                    text: "Data :"
  214.                    height: self.texture_size[1] + dp(3)
  215.                    halign: 'center'
  216.                    pos_hint: {'center_x': 0.5, 'center_y': 0.5}
  217.  
  218.            
  219.  
  220.            Screen:
  221.                name: 'screen3'
  222.                id: 'screen3'
  223.                
  224.                Toolbar:
  225.                    id: tools
  226.                    title: "Your Profile"
  227.                    pos_hint: {'center_x': 0.5, 'center_y': 0.96}
  228.                    md_bg_color: app.theme_cls.primary_color
  229.                    background_palette: 'DeepPurple'
  230.                    background_hue: 'A400'
  231.                    left_action_items: [['arrow-left', lambda x: root.back_to_chat()]]
  232.                MDLabel:
  233.                    id: 'Profile_String'
  234.                    font_size: 90
  235.                    text: "Brian Zheng"
  236.                    halign: 'center'
  237.                    pos_hint: {'center_x': 0.5, 'center_y': 0.85}
  238. """
  239.  
  240.  
  241. class MyApp(App):
  242.     theme_cls = ThemeManager()
  243.     theme_cls.primary_palette = 'Blue'
  244.     title = "Navigation Drawer"
  245.     main_widget = None
  246.  
  247.     def build(self):
  248.         self.main_widget = Builder.load_string(KV)
  249.         return self.main_widget
  250.  
  251.     def callback(self, instance, value):
  252.         toast("Pressed item menu %d" % value)
  253.  
  254.     def on_start(self):
  255.         for i in range(15):
  256.             self.main_widget.ids.nav_drawer.add_widget(
  257.                 NavigationDrawerIconButton(text="Item menu %d" % i,
  258.                     on_release=lambda x, y=i: self.callback(x, y)))
  259.  
  260. MyApp().run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement