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 Laughing. Bila kalian jalankan akan tampil seperti gambar dibawah ini.

Python grid table

 

Semoga bermanfaat