Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from kivy.app import App
- from kivy.lang import Builder
- from kivy.properties import ObjectProperty
- from kivy.uix.boxlayout import BoxLayout
- from kivymd.theming import ThemeManager
- from kivy.uix.popup import Popup
- from kivy.uix.screenmanager import ScreenManager, Screen
- from kivymd.card import MDCardPost
- from kivymd.menu import MDDropdownMenu
- from kivymd.navigationdrawer import NavigationLayout
- from kivymd.navigationdrawer import NavigationDrawerIconButton
- from kivymd.toast import toast
- class MyLayout(BoxLayout):
- scr_mngr = ObjectProperty(None)
- def check_data_login(self):
- username = self.scr_mngr.screen1.username.text
- password = self.scr_mngr.screen1.password.text
- print(username)
- print(password)
- if username == "KivyMD" and password == "kivy":
- self.ids["wrongpass"].text = ""
- self.change_screen("screen2")
- else:
- self.ids["wrongpass"].text = "Wrong username or password, please try again"
- def change_screen(self, screen, *args):
- self.scr_mngr.transition.direction = 'left'
- self.scr_mngr.current = screen
- def back_to_chat(self):
- self.scr_mngr.transition.direction = 'right'
- self.scr_mngr.current = 'screen2'
- class nav_layout(NavigationLayout):
- def print_text(self):
- print('hello')
- def check_data_login(self):
- username = self.ids.screen1.username.text
- password = self.ids.screen1.password.text
- print(username)
- print(password)
- if username == "KivyMD" and password == "kivy":
- self.change_screen("screen2")
- self.ids.wrongpass.text = ""
- else:
- self.ids.wrongpass.text = "Wrong username or password, please try again"
- def change_screen(self, screen, *args):
- self.ids.scr_mngr.transition.direction = 'left'
- self.ids.scr_mngr.current = screen
- def back_to_chat(self):
- self.ids.scr_mngr.transition.direction = 'right'
- self.ids.scr_mngr.current = 'screen2'
- def logout(self):
- #logout function, returns to screen 1
- self.ids.scr_mngr.current = 'screen1'
- KV = """
- #:import Toolbar kivymd.toolbar.Toolbar
- #:import ThemeManager kivymd.theming.ThemeManager
- #:import MDNavigationDrawer kivymd.navigationdrawer.MDNavigationDrawer
- #:import NavigationLayout kivymd.navigationdrawer.NavigationLayout
- #:import NavigationDrawerDivider kivymd.navigationdrawer.NavigationDrawerDivider
- #:import NavigationDrawerToolbar kivymd.navigationdrawer.NavigationDrawerToolbar
- #:import NavigationDrawerSubheader kivymd.navigationdrawer.NavigationDrawerSubheader
- #:import MDCheckbox kivymd.selectioncontrols.MDCheckbox
- #:import MDSwitch kivymd.selectioncontrols.MDSwitch
- #:import MDDropdownMenu kivymd.menu.MDDropdownMenu
- #:import MDList kivymd.list.MDList
- #:import OneLineListItem kivymd.list.OneLineListItem
- #:import TwoLineListItem kivymd.list.TwoLineListItem
- #:import ThreeLineListItem kivymd.list.ThreeLineListItem
- #:import OneLineAvatarListItem kivymd.list.OneLineAvatarListItem
- #:import OneLineIconListItem kivymd.list.OneLineIconListItem
- #:import OneLineAvatarIconListItem kivymd.list.OneLineAvatarIconListItem
- #:import MDTextField kivymd.textfields.MDTextField
- #:import MDSpinner kivymd.spinner.MDSpinner
- #:import MDCard kivymd.card.MDCard
- #:import MDSeparator kivymd.card.MDSeparator
- #:import MDDropdownMenu kivymd.menu.MDDropdownMenu
- #:import get_color_from_hex kivy.utils.get_color_from_hex
- #:import colors kivymd.color_definitions.colors
- #:import SmartTile kivymd.grid.SmartTile
- #:import MDSlider kivymd.slider.MDSlider
- #:import MDTabbedPanel kivymd.tabs.MDTabbedPanel
- #:import MDTab kivymd.tabs.MDTab
- #:import MDProgressBar kivymd.progressbar.MDProgressBar
- #:import MDAccordion kivymd.accordion.MDAccordion
- #:import MDAccordionItem kivymd.accordion.MDAccordionItem
- #:import MDAccordionSubItem kivymd.accordion.MDAccordionSubItem
- #:import MDThemePicker kivymd.theme_picker.MDThemePicker
- #:import MDBottomNavigation kivymd.tabs.MDBottomNavigation
- #:import MDBottomNavigationItem kivymd.tabs.MDBottomNavigationItem
- #:import CardTransition kivy.uix.screenmanager.CardTransition
- #:import partial functools.partial
- #:import MDDropdownMenu kivymd.menu.MDDropdownMenu
- #:import MDNavigationDrawer kivymd.navigationdrawer.MDNavigationDrawer
- #:import NavigationDrawerSubheader kivymd.navigationdrawer.NavigationDrawerSubheader
- #:import MDNavigationDrawer kivymd.navigationdrawer.MDNavigationDrawer
- #:import NavigationLayout kivymd.navigationdrawer.NavigationLayout
- #:import NavigationDrawerDivider kivymd.navigationdrawer.NavigationDrawerDivider
- #:import NavigationDrawerToolbar kivymd.navigationdrawer.NavigationDrawerToolbar
- #:import NavigationDrawerSubheader kivymd.navigationdrawer.NavigationDrawerSubheader
- nav_layout:
- id: nav_layout
- MDNavigationDrawer:
- id: nav_drawer
- drawer_logo: 'logo.png'
- NavigationDrawerToolbar:
- title: 'hello'
- NavigationDrawerIconButton:
- icon: 'settings'
- text: 'Account Settings'
- on_release: root.change_screen('screen3')
- NavigationDrawerIconButton:
- icon: 'face'
- text: 'Friends'
- on_release: root.print_text()
- NavigationDrawerIconButton:
- icon: 'logout'
- text: 'Logout'
- on_release: root.logout()
- NavigationDrawerDivider:
- height: dp(1)
- MyLayout:
- scr_mngr: scr_mngr
- orientation: 'vertical'
- ScreenManager:
- transition: CardTransition()
- id: scr_mngr
- screen1: screen2
- Screen:
- id: screen1
- name: 'screen1'
- username: username
- password: password
- BoxLayout:
- size_hint: None, None
- size: dp(520), dp(340)
- pos_hint: {'center_x': 0.5, 'center_y': 0.5}
- BoxLayout:
- orientation:'vertical'
- padding: dp(20)
- spacing:20
- MDLabel:
- text: 'Chat App'
- theme_text_color: 'Secondary'
- font_style:"Title"
- size_hint_y: None
- height: dp(36)
- MDSeparator:
- height: dp(1)
- MDTextField:
- id: username
- hint_text: "Username "
- helper_text_mode: "on_focus"
- MDTextField:
- id: password
- hint_text: "Password "
- helper_text_mode: "on_focus"
- password: True
- MDFlatButton:
- text: "Login"
- pos_hint: {'center_x': 0.5}
- on_release: root.check_data_login()
- MDLabel:
- id: wrongpass
- color: 1,0,1,1
- text: ""
- Screen:
- name: 'screen2'
- id: screen2
- Toolbar:
- id: toolbar
- title: "Welcome ! "
- pos_hint: {'center_x': 0.5, 'center_y': 0.96}
- md_bg_color: app.theme_cls.primary_color
- background_palette: 'DeepPurple'
- background_hue: 'A400'
- left_action_items: [['menu', lambda x: app.root.toggle_nav_drawer() ]]
- right_action_items: [['animation', lambda x: MDThemePicker().open()], ['camera', lambda x: print('hello')]]
- MDLabel:
- font_style: 'Title'
- theme_text_color: 'Primary'
- text: "Data :"
- height: self.texture_size[1] + dp(3)
- halign: 'center'
- pos_hint: {'center_x': 0.5, 'center_y': 0.5}
- Screen:
- name: 'screen3'
- id: 'screen3'
- Toolbar:
- id: tools
- title: "Your Profile"
- pos_hint: {'center_x': 0.5, 'center_y': 0.96}
- md_bg_color: app.theme_cls.primary_color
- background_palette: 'DeepPurple'
- background_hue: 'A400'
- left_action_items: [['arrow-left', lambda x: root.back_to_chat()]]
- MDLabel:
- id: 'Profile_String'
- font_size: 90
- text: "Brian Zheng"
- halign: 'center'
- pos_hint: {'center_x': 0.5, 'center_y': 0.85}
- """
- class MyApp(App):
- theme_cls = ThemeManager()
- theme_cls.primary_palette = 'Blue'
- title = "Navigation Drawer"
- main_widget = None
- def build(self):
- self.main_widget = Builder.load_string(KV)
- return self.main_widget
- def callback(self, instance, value):
- toast("Pressed item menu %d" % value)
- def on_start(self):
- for i in range(15):
- self.main_widget.ids.nav_drawer.add_widget(
- NavigationDrawerIconButton(text="Item menu %d" % i,
- on_release=lambda x, y=i: self.callback(x, y)))
- MyApp().run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement