Kita lanjutkan pembelajaran kita tentang Tutorial Belajar Membuat Aplikasi Android Dengan Python Kivy. Dan kali ini kita akan membahas tentang bagaimana membuat Popup dan Screen. Kedua cara ini bisa kita gunakan sebagai multiple halaman di kivy.

Popup

Untuk Membuat popup kita perlu mengiimport Modul Popup , dan membaut class tersendiri untuk popupnya. Code dari python kurang lebih seperti dibawah ini

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.popup import Popup

class MainLayout(BoxLayout):
    def openPopup(self):
        popup = MyPopup()
        popup.open()

class MyPopup(Popup):
    def closePopup(self):
        self.dismiss()

class MainApp(App):
    def build(self):
        return MainLayout()

MainApp().run()

Dari kode diatas teman teman bisa melihat kode from kivy.uix.popup import Popup yang gunanya adalah untuk import module Popup, dan ada juga class MyPopup yang akan di gunakan untuk pengaturan popupnya. Ok sekarang kita lihat dulu untuk file kv nya. Karena class yang kita gunakan adalah MainApp maka kita perlu membikan file main.kv yang bisa kita isi codenya seperti dibawah ini

#:kivy 2.1.0
<MainLayout>:
Button:
text: "Open Popup"
on_release: root.openPopup()

<MyPopup>:
title: "Ini Popup"
size_hint:(0.5,0.5)
Button:
text: "Close"
on_release: root.closePopup()

Dari file kv diatas terdapat 2 class yang di atur. Yaitu MainLayout dan MyPopup. Kita bisa menambahkan widget untuk pengaturan popup di MyPopup. Koderoot.openPopup() . Digunakan untuk mengakses fungsi openPopup yang ada di roott nya. Yaitu pada class MainLayout . Karena button yang bersangkutan berada pada Class MainLayout. dan fungsi openPopup() adalah popup.open()

Sedangkan untuk kode  root.closePopup(). Letaknya berada di Popup. jadi fungsi closePopup diletakkan di class MyPopup. Dan isi dari closePopup() adalah self.dismiss()

Kita juga bisa mengakses popup langusng dari file kv nya. tanpa harus membuat fungsi Kode file kv .

Untuk close popup anda bisa menggunakan code berikut

on_release: root.dismiss()

Untuk open popup, kita butuh menimport factory.

#:import Factory kivy.factory.Factory

Dan untuk membukanya, kita bisa gunakan event

on_release: Factory.MyPopup().open()

 

Screen

Untuk Screen, kita butuh2 modul yaitu Screen dan juga Screen Manager.

from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen

class ScreenOne(Screen):
    pass

class ScreenTwo(Screen):
    pass

class ScreenMain(ScreenManager):
    pass

class MainApp(App):
    def build(self):
        return ScreenMain()
    #pass

MainApp().run()

Dari kode diatas , saya membuat 2 buah halaman dengan ScreenOne dan ScreenTwo. Dan ScreenMain digunakakn sebagai class untuk menggabungkan keduanya.

Didalam Main App, saya mereturn gabaunganya yaitu megembalikan output dari ScreenMain(). Untuk file kv bisa dilihat di bawah ini.

<ScreenMain>:
    ScreenOne:
    ScreenTwo:

<ScreenOne>:
    name : 'screen_one'
    Label:
        text : 'Screen One'
    Button:
        text: 'Goto Screen Two'
        on_release : root.manager.current="screen_two"
<ScreenTwo>:
    name : 'screen_two'
    Label:
        text : 'Screen Two'
    Button:
        text: 'Goto Screen One'
        on_release : root.manager.current="screen_one"

Setiap screen kita beri nama. dan dalam kasus ini saya berinama screen_one dan screen_two. jadi ketika kita ingin pindah antar screen , kita bisa menggunakan root.manager.current=”screen_two” , ataupun kita bisa menggunakan root.manager.current=”screen_one”

Jika ingin meletakan code di file python maka, untuk on_release bisa kita gunakan on_release : root.pindahScreen(). Kita akses fungsi pindahScreen() yang ada di root. Sehingga untuk fungsinya bisa kita tuliskan seperti dibawah ini

def pindahScreen(self):
self.manager.current=”screen_two”

[/php]