Monday, May 23, 2022

Kivy - KivyMD Login App Dahsboard Example

Selamat datang di blog ali-mahdali.blogstpot.com, kali ini penulis memposting artikel yang berjudul Kivy - KivyMD Login App Dahsboard Example yang mana artikel ini dapat kalian akses melalui alamat : https://ali-mahdali.blogspot.com/2022/05/kivy-kivymd-login-app-dahsboard-example.html,
tanpa basa-basi yuk disimak artikelnya dibawah ini. Selamat membaca

berikut ini tampilan source code membangun aplikasi multi platform menggunakan bahasa pemrograman python dan framework kivy + kivymd








perintahnya adalah sebagai berikut:

from kivymd.app import MDApp

from kivy.lang import Builder

from kivy.uix.screenmanager import ScreenManager, Screen

from kivy.clock import Clock

from kivy.core.window import Window

from kivymd.uix.list import MDList, OneLineListItem


Window.size = (400, 700)

tampilan_awal = '''

MainScreen:

    SplashScreen:

    LoginScreen:

    

<SplashScreen>:

    name: 'splashscreen'

    BoxLayout:

        orientation: 'vertical'

        MDLabel:

            id: judul

            text: 'Aplikasi Login'

            font_size: '40'

            markup: True

            halign: 'center'

            

<LoginScreen>:

    name: 'loginscreen'

    BoxLayout:

        orientation: 'vertical'

        padding: '10dp'

        spacing: '10dp'

        pos_hint: {'center_y':0.5}

        adaptive_height: True

        MDLabel:

            text: 'Login'

            font_size: '52'

            halign: 'center'

        MDTextField

            id: username

            hint_text: "Username"

            text: "user"

        MDTextField

            id: password

            hint_text: "Password"

            password:True

            text:"kosong"

        MDRectangleFlatButton:

            id:btnConnect

            text: "LOG IN"

            font_size: 18

            pos_hint: {"center_x": 0.5}

            on_press: root.proses_login()

        Widget:

    Widget:

   

'''



class MainScreen(ScreenManager):

    pass


class SplashScreen(Screen):

    pass


class LoginScreen(Screen):

    def proses_login(self):

        myApp = MDApp.get_running_app()

        try:

            myApp.window_manager.add_widget(AppScreen(name='appscreen'))

            myApp.ganti_layar('appscreen','down') 

        except:

            pass



AppScreen_kv = Builder.load_string('''

<AppScreen>:

    name: 'appscreen'

    BoxLayout:

        orientation: 'vertical'

        MDToolbar:

            id: toolbar

            pos_hint: {"top": 1}

            elevation: 10

            title: "Router Management"

            left_action_items: [["menu", lambda x: nav_draw.set_state()]]

        BoxLayout:

            orientation: 'vertical'


            MDNavigationLayout:

                x: toolbar.height

                ScreenManager:

                    id: app_screen_manager

                                

                MDNavigationDrawer:

                    id: nav_draw

                    orientation: "vertical"

                    padding: "4dp"

                    spacing: "4dp"

                    

                    ScrollView:

                        MDList:

                            id:app_menu

                                        

                    Widget:

''')


class AppScreen(Screen):

    def __init__(self, **kwargs):

        super().__init__(**kwargs)

        Clock.schedule_once(self.buatMenuLayar)

        

    def buatMenuLayar(self, *args):

        listLayar = [DashboardScreen(name="Dashboard")]

        for i in range(len(listLayar)):

            self.ids.toolbar.title = listLayar[i].name

            self.ids.app_screen_manager.add_widget(listLayar[i])   

            self.ids.app_menu.add_widget(OneLineListItem(text=listLayar[i].name,on_press=self.gantiScreen))

        self.ids.app_menu.add_widget(OneLineListItem(text="Log Out",on_press=self.logOut))

        

    def gantiScreen(self, instance):

        self.ids.toolbar.title=instance.text

        self.ids.nav_draw.set_state("close")

        self.ids.app_screen_manager.current = instance.text

        

    def logOut(self, instance):

        myApp = MDApp.get_running_app()

        myApp.ganti_layar('loginscreen','up')

        self.ids.nav_draw.set_state("close")

        

    def build(self):

        self.root_layout = FloatLayout()

        self.root_layout.add_widget(AppScreen_kv)

        return self.root_layout





dashboard_kv = Builder.load_string('''

<DashboardScreen>:

    name: 'dashboardscreen'

    MDBoxLayout:

        spacing: "5dp"

        padding: "10dp"

        pos_hint: {"center_x": .5, "center_y": .5}

        orientation: 'vertical'

        GridLayout:

            cols: 2

            rows: 3

            spacing:'5dp'

            MDCard:

                size_hint: 0.3, 0.3

                orientation: 'vertical'

                padding: '15dp'

                spacing: '15dp'

                md_bg_color: [0.121, .227, 0.576, 0.7]

                radius: [16, ]

                MDLabel:

                    id: jumlahuserdhcp

                    text: "0"

                    theme_text_color: "Custom"

                    text_color: 1, 1, 1, 1

                    font_style: 'H3'

                    halign: 'center'

                MDLabel:

                    id: keteranganuserdhcp

                    text: 'User DHCP'

                    theme_text_color: "Custom"

                    text_color: 1, 1, 1, 1

                    font_style: 'Subtitle2'

                    halign: 'center'

            MDCard:

                size_hint: 0.3, 0.3

                orientation: 'vertical'

                padding: '15dp'

                spacing: '15dp'

                md_bg_color: [0.121, .227, 0.576, 0.7]

                radius: [16, ]

                MDLabel:

                    id: jumlahuserpppoe

                    text: "0"

                    theme_text_color: "Custom"

                    text_color: 1, 1, 1, 1

                    font_style: 'H3'

                    halign: 'center'

                MDLabel:

                    id: keteranganuserpppoe

                    text: 'User PPPOE'

                    theme_text_color: "Custom"

                    text_color: 1, 1, 1, 1

                    font_style: 'Subtitle2'

                    halign: 'center'


            MDCard:

                size_hint: 0.3, 0.3

                orientation: 'vertical'

                padding: '15dp'

                spacing: '15dp'

                md_bg_color: [0.121, .227, 0.576, 0.7]

                radius: [16, ]

                MDLabel:

                    id: jumlahuserhospot

                    text: "0"

                    theme_text_color: "Custom"

                    text_color: 1, 1, 1, 1

                    font_style: 'H3'

                    halign: 'center'

                MDLabel:

                    id: keteranganuserhospot

                    text: 'User Hotspot'

                    theme_text_color: "Custom"

                    text_color: 1, 1, 1, 1

                    font_style: 'Subtitle2'

                    halign: 'center'

''')


class DashboardScreen(Screen):

    def on_enter(self):

        print('Halaman Dashboard')

        

    def build(self):

        self.root_layout = FloatLayout()

        self.root_layout.add_widget(dashboard_kv)

        return self.root_layout


class MainApp(MDApp):

    def build(self):

        self.window_manager = Builder.load_string(tampilan_awal)

        Clock.schedule_once(lambda dt: self.ganti_layar('loginscreen'), 3)

        return self.window_manager

    

    def ganti_layar(self,namascreen,arah='down'):

        self.window_manager.transition.direction = arah

        self.window_manager.current = namascreen

        


if __name__ == '__main__':

    MainApp().run()


Sebelum melanjutkan membaca artikel ini, berikut adalah artikel yang berkaitan dengan judul artikel Kivy - KivyMD Login App Dahsboard Example :
ok, silahkan lanjut membaca.

Terimakasih atas kunjungan Anda dan Karena telah sudi membaca artikel yang berjudul Kivy - KivyMD Login App Dahsboard Example.Tak Lengkap Rasanya Jika Kunjungan Anda di Blog ini Tanpa Meninggalkan Komentar, untuk Itu Silahkan Berikan Kritik dan saran Pada Kotak Komentar di bawah. Anda boleh menyebarluaskan atau mengcopy artikel Kivy - KivyMD Login App Dahsboard Example ini jika memang bermanfaat bagi anda, namun jangan lupa untuk mencantumkan link sumbernya. Terima Kasih, Happy Blogging :)


EmoticonEmoticon