Sebelum saya mulai latihan ini, saya ingin bertanya, Pernahkah Anda merasa bingung mencari teknik atau cara untuk mengambil data dari sebuah form lain? dan tentu saja ini terjadi ketika kita bermain di Python. Kalau ada yang pernah, saya ucapkan SELAMAT!!!....hehehe...cos sekarang kita senasib. Jujur, saya pun dulu juga pernah mengalaminya. Tetapi alhamdulillah, setelah melihat-lihat source code-nya IDLE, saya jadi tahu gaya-nya om Guido van Rossum...ternyata beliau menggunakan widget Toplevel (saya dulu menggunakan Frame, dan ternyata lebih ribet). Dan contohnya seperti gambar di atas.
Ok, saya akan jelaskan sebentar tentang desain program ini.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOpuOWwQ3J_mSqU9f8BYBpumuyND_m1ME_H5ROAfMpE23DK5giOF0a2YWoOemck2QxHFT-1DBXulphtdBV7TrmSjiwQP5j69Ed8VoZdNE0DOXeMUy2v3q1IRuITXtI_MZ9lwnopMKp7rM/s320/ref1.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc0mXqzlXUy46GI69AtLPw0k7Zv2iZi2OtiEF8YMmldgcnTt7xzo7XEobldUKCobY3BM8x54KU9fZNFIGp3eZDMBnhn2dGLxCOvPSB6mS0cxCaqGhPBtViJVuO1QMXaRwMXOoPwixWx2g/s320/ref2.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbapgt2vScApdM9oBaORe9BB5_hUcGnMRicwRy0gssfdkrDh9HvAAhJkI2pNdJdpOupUBl0kOAuxzltco6A2ca_qc24Zb5WjJOYhU3uSryGD64tczxIPEx9AxZtuJPEBcz2leJw1WhqoE/s320/ref3.png)
(4) Program ini terdiri dari 2 file yaitu Reference.py sebagai form induk, dan bidStudi.py sebagai form turunan.
OK!!!! Selamat Menikmati.....SALAM PYTHON DAHSYAT!!!
# file : Reference.py
from Tkinter import *
import bidStudi
import tkMessageBox
class Reference(Frame):
def __init__(self, parent, title):
Frame.__init__(self, parent, bd=10)
self.pack(fill=BOTH, expand=YES)
self.master.title(title)
self.aturKomponen()
self.parent = parent
def aturKomponen(self):
frame = Frame(self, bd=5)
frame.pack(fill=BOTH, expand=YES)
Label(frame, text='Bidang Studi :').grid(row=0,
column=0, sticky=W)
Label(frame, text=' ').grid(row=0, column=1)
self.entryMapel = Entry(frame)
self.entryMapel.grid(row=0, column=2)
self.butPilih = Button(frame, text="...",
command=self.pilih)
self.butPilih.grid(row=0, column=3)
Button(self, text="Simpan",
command=self.simpan).pack(side=BOTTOM)
def pilih(self):
obj = bidStudi.BidStudi(self.parent, "Pilihan Pelajaran")
mapel = obj.pilihan()
self.entryMapel.delete(0, END)
self.entryMapel.insert(END, mapel)
def simpan(self):
if self.entryMapel.get() == "":
tkMessageBox.showinfo("informasi",
"Pilihan Bidang Studi masih kosong!")
else:
tkMessageBox.showinfo("informasi",
"Pilihan Bidang Studi telah tersimpan!")
self.master.destroy()
if __name__ == '__main__':
root = Tk()
Reference(root, "Latihan Reference")
root.mainloop()
# file: bidStudi.py
from Tkinter import *
MAPEL = ["Matematika", "Fisika", "Kimia", "Biologi",
"Bhs Inggris"]
class BidStudi(Toplevel):
def __init__(self, parent, title):
Toplevel.__init__(self, parent)
self.configure(borderwidth=10)
self.title(title)
self.aturKomponen()
self.transient(parent)
self.grab_set()
self.wait_window()
def aturKomponen(self):
frame = Frame(self)
frame.pack(fill=BOTH, expand=YES)
self.var = StringVar()
self.var.set('Matematika')
for mapel in MAPEL:
radPilihan = Radiobutton(frame, text=mapel,
variable=self.var, value=mapel)
radPilihan.pack(side=LEFT)
Button(self, text="OK", command=self.ok).pack(
side=BOTTOM)
def pilihan(self):
return self.var.get()
def ok(self):
self.destroy()
# tes bidStudi.py
if __name__ == '__main__':
root = Tk()
def run():
import bidStudi
obj = bidStudi.BidStudi(root, "Pilihan - Bidang Studi")
print obj.pilihan()
Button(root, text="TES", command=run, width=10).pack()
root.mainloop()
Salam kenal. Wah, senang melihat aa blog berbahasa Indonesia yang khusus python. Salam Python Dahsyat!
BalasHapussalam kenal juga mas...Semoga Blog Python Sangat Sederhana ini (disingkat BPSS...hehehe) bisa bermanfaat buat bangsa Indonesia.
BalasHapusAyo lestarikan Tkinter!...SALAM PYTHON DAHSYAT!!!
Salam Kenal Mas. Blognya bagus, kebetulan Saya sedang belajar Python. Sangat membantu. Izin bagi scriptnya ya Mas... :D
BalasHapusKeren mas blognya,, ini udah expert banget ya..
BalasHapusagan2 bisa mampir ke blog sini untuk belajar dasar-dasar bahas pemprograman python