Didalam library Tkinter ada sub class yang bernama ttk saya juga baru tau setelah baca – baca Dokumentasi online Python, didalam paket ttk juga ada beberapa tool yang sama dengan Tkinter cuman bedanya bisa di custom style jd kalau kalian akan memodifikasi warna background paket ttk ini jawabannya.
Sebenarnya didunia python programming saya berbilang baru coba – coba karena belum ada tawaran untuk membuat program menggunakan bahasa ini kecuali untuk Internal dikantor (hanya program kecil). Sudah saya jelaskan mengapa saya menggunakan Tkinter bukan pada artikel – artikel saya sebelumnya 🙂 yang belum baca silahkan baca melalui link ini. Grid bawaan tkinter ini sudah cukup mewakili (bagi saya) untuk membuat pogram – program client – server SOHO karena tools – toolsnya sudah cukup handal walau kekurangannya hanya pada bentuk interfacenya yang kurang bagus, tapi ga papa, itu tantangan untuk kalian untuk membuat librarry sendiri agar performance dan tampilannya lebih manusiawi (bukan berarti jelek).
Ok selanjutkan kita akan sedikit belajar bagaimana menampilkan Grid table pada bahasa emrograman Python menggunakan Tkinter.
#!/usr/bin/python
from tkinter import * # deklarasi paket Tkinter
import tkinter.ttk # import sub class ttk untuk Grid table
class FrmGrid(Frame): # buat class baru beri nama FrmGrid
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.showWindow() # panggil fungsi showWindow untuk menampilkan window
self.dataGrid() # panggil fungsi dataGrid
def showWindow(self):
width = 550 # tentukan lebar Window Frame
height = 310 # tentukan tinggi window Frame
self.parent.geometry(‘%dx%d’ % (width,height)) # tentukan letak window saat akan di tampilkan
self.parent.resizable(False, False) # Window Frame tidak bisa di Resize
self.parent.title(“Grid table python”) # Beri nama window Frame
def dataGrid(self):
data = [
{‘nik’:’nik00001′,’nama’:’budi sudarsono’,’kelamin’:’L’,’pekerjaan’:’Swasta’}
,{‘nik’:’nik00002′,’nama’:’Setiawan djodi’,’kelamin’:’L’,’pekerjaan’:’Seniman’}
,{‘nik’:’nik00003′,’nama’:’Luna maya’,’kelamin’:’P’,’pekerjaan’:’Aktris’}
] # Dictionary data yang akan ditampilkan
self.tree = tkinter.ttk.Treeview(self, columns=(“NAMA”,”KELAMIN”,”PEKERJAAN”),height=13) # Tentukan nama2 kolom grid
ysb = tkinter.ttk.Scrollbar(self, orient=’vertical’, command=self.tree.yview)
self.tree.configure(yscroll=ysb.set) # untuk Scroll vertikal
ysb.grid(row=0, column=5, sticky=’ns’, rowspan=250) # letakkan Scroll vertikal grid pada kolom ke 5
# Header Grid
self.tree.heading(‘#0’, text=”NIK”) # beri nama kolom pertama pada Grid
self.tree.column(‘#0′, minwidth=75, width=75, anchor=’se’) # besarnya kolom pertamapada Grid
self.tree.heading(‘NAMA’, text=”NAMA”) # kolom kedua
self.tree.column(‘NAMA’, minwidth=250, width=250,stretch=False) # besar kolom kedua
self.tree.heading(‘KELAMIN’, text=”KELAMIN”) #kolom ketiga
self.tree.column(‘KELAMIN’, minwidth=50, width=50,stretch=False, anchor=’center’) # besar kolom ketiga
self.tree.heading(‘PEKERJAAN’, text=”PEKERJAAN”) #kolom keempat
self.tree.column(‘PEKERJAAN’, minwidth=150, width=150,stretch=False) # besa kolom keempat
self.tree.grid(row=0, column=0, columnspan=5, rowspan=250) #letak grid yg akan di tampilkan
# Insert data pada Grid
i=0
for value in data:
if(i%2): # menentukan ganjil genap pada baris menggunakan modulus
oddeven = “evenrow”
else:
oddeven = “oddrow”
self.tree.insert(”, END, text=value[‘nik’], values=[value[‘nama’],value[‘kelamin’], value[‘pekerjaan’]],tags = oddeven) # memasukkan data pada tiap-tiap kolom Grid
i=i+1
self.tree.tag_configure(‘oddrow’, background=”#CCCCCC”) # beriwarna gelap untuk baris ganjil
self.tree.tag_configure(‘evenrow’, background=”#F5F5F5″) # beri warna sedikit terang untuk baris genap
self.grid() # tampilkan Grid pada Window Frame
if(__name__ == ‘__main__’):
root = Tk()
FrmGrid(root)
root.mainloop()
Mudah bukan kalian dapat menambahkan pagination juga pada grid tersebut lain waktu akan saya bahas untuk paginationnya . Bila kalian jalankan akan tampil seperti gambar dibawah ini.
Semoga bermanfaat