Friday, July 3, 2020

Menampilkan Form saat pemilihan menu

Saat menu Data mahasiswa dipilih, sebelumnya kita menampilkan kotak dialog yang berisi kalau sedang dibuat. Berikutnya kita akan menampilkan form kosong yang nanti akan kita isi dengan tampilan data mahasiswa.

Dari contoh sebelumnya, kita sudah membuat kode untuk merespons pilihan menu. Menu data mahasiswa sudah ada fungsi / kode yang digunakan untuk menampilkan kotak dialog. Menu keluar membuat aplikasi kita berhenti.


Untuk menampilkan form baru saat pemilihan menu data mahasiswa, yang perlu kita lakukan adalah memodifikasi rutin sebelumnya. Rutin untuk menampilkan kotak dialog diubah menjadi rutin untuk menampilkan sebuah form. Sebagaimana kode-kode terdahulu untuk menampilkan form baru kita bisa menggunakan rutin sebagai berikut:




def tombol_tutup_click():
    # Variabel formData diawali dengan keyword/kata global
    # hal ini menyatakan bahwa variabel tersebut dibuat untuk 
    # dikenali di semua fungsi yang ada.

    global formData
    if msgbox.askokcancel("Tutup", "Anda yakin nutup form?") == msgbox.OK:
        formData.destroy()

def data():
    # variabel win dan formData didahului dengan keyword / kata global
    # tujuannya supaya bisa dikenali di luar fungsi data()
    
    global win
    global formData

    formData = tk.Toplevel(win)
    formData.title("Data Mahasiswa")

    # membuat kotak dalam form untuk tombol/entrian yang akan kita buat nantinya
    frame = tk.Frame(formData)
    tutup = tk.Button(frame, text="Tutup", width=50, command=tombol_tutup_click)

    tutup.pack()
    frame.pack()


Ada satu modifikasi yang kita lakukan terhadap fungsi data() dan tambahan satu fungsi tombol_tutup_click(). Fungsi tombol_tutup_click() digunakan untuk meresnpons jika terjadi pemilihan / klik terhadap tombol tutup yang ada di form baru tersebut.

Kode lengkap untuk menampilkan form saat pemilihan menu dengan tambahan modifikasi terhadap kode sebelumnya adalah sebagai berikut:


# simpan sebagai gui05.py
# jalankan dengan perintah python gui05.py

import tkinter as tk
import tkinter.messagebox as msgbox


def tombol_tutup_click():
    global formData
    if msgbox.askokcancel("Tutup", "Anda yakin nutup form?") == msgbox.OK:
        formData.destroy()

def data():
    global win
    global formData

    formData = tk.Toplevel(win)
    formData.title("Data Mahasiswa")
    # membuat kotak dalam form untuk tombol/entrian yang akan kita buat nantinya
    frame = tk.Frame(formData)
    tutup = tk.Button(frame, text="Tutup", width=50, command=tombol_tutup_click)

    tutup.pack()
    frame.pack()


def keluar():
    global win
    win.quit()


win = tk.Tk()
win.title("Sistem Informasi")
win.geometry('800x600')
menubar = tk.Menu(win)

appmenu = tk.Menu(menubar)
appmenu.add_command(label='Data Mahasiswa', command=data)
appmenu.add_separator()
appmenu.add_command(label='Keluar', command=keluar)

menubar.add_cascade(label='Data', menu=appmenu)
win.config(menu=menubar)
win.mainloop()



Berikut salah satu hasil dari program di atas setelah pemilihan menu data mahasiswa



No comments: