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]