Proyek Python Tkinter [Penjelasan Langkah-demi-Langkah]

Diterbitkan: 2020-09-14

Mempelajari GUI dengan Python bisa sangat menantang. Jangan khawatir karena kami mendukung Anda! Pada artikel ini, kami telah membagikan tutorial Tkinter sehingga Anda dapat mengerjakan proyek GUI Python secara efisien. Setelah menyelesaikan tutorial ini, Anda akan terbiasa dengan blok penyusun untuk membuat proyek Python Tkinter. Jika Anda ingin mendapatkan lebih banyak keahlian dalam python, periksa program ilmu data kami.

Kami juga telah membagikan kode untuk setiap langkah. Namun, kami menyarankan Anda menyalin dan menempelkannya hanya jika Anda memahami cara kerjanya. Kalau tidak, itu tidak akan banyak berguna.

Daftar isi

Apa itu Tkinter?

Tkinter adalah paket untuk Python untuk menggunakan toolkit GUI Tk. Anda dapat menggunakan Tkinter untuk membuat program GUI melalui Python. Meskipun Tkinter mampu menghasilkan banyak program, Anda mungkin perlu menggunakan modul untuk implementasi lanjutan. Anda harus terbiasa dengan dasar-dasar Tkinter sebelum mengerjakan proyek Python Tkinter:

Program Hello World di Tkinter

Berikut adalah contoh program hello world di Tkinter:

impor tkinter sebagai tk

Aplikasi kelas (tk.Frame):

def __init__(sendiri, master=Tidak ada):

super().__init__(master)

self.master = master

self.pack()

self.create_widgets()

def create_widgets(mandiri):

self.hi_there = tk.Button(self)

self.hi_there[“text”] = “Halo Dunia\n(klik saya)”

self.hi_there[“perintah”] = self.say_hi

self.hi_there.pack(side="top")

self.quit = tk.Button(self, text=”QUIT”, fg=”red”,

perintah=self.master.destroy)

self.quit.pack(side="bottom")

def say_hi(diri):

print(“Halo semuanya!”)

akar = tk.Tk()

aplikasi = Aplikasi (master = root)

aplikasi.mainloop()

Manajer Geometri di Tkinter

Konsep utama lain yang harus Anda ketahui saat mengerjakan proyek Python Tkinter adalah manajer geometri. Tanpa menggunakan pengelola geometri, widget Anda tidak akan muncul di layar. Ada tiga cara utama Anda dapat menambahkan manajer geometri:

kisi-kisi

Itu menambahkan kisi ke induk dan memungkinkannya untuk menampilkan widget yang sesuai. Kisi memiliki baris dan kolom untuk mengukur panjang dan tinggi widgetnya.

Mengemas

Metode ini memberi tahu widget untuk mengemas dirinya sendiri di dalam induk. Itu hanya menambahkan widget ke daftar widget anak-anak untuk orang tua. Secara sederhana, itu menambahkannya ke blok sebelum menempatkannya di widget induk.

Tempat

Metode ini menempatkan widget di lokasi tertentu sesuai dengan widget induk.

Dalam tutorial kami di bawah ini, kami telah menggunakan manajer paket untuk menangani posisi widget kami. Itu sebabnya akan lebih baik jika Anda terbiasa dengan konsep-konsep ini. Ini akan membantu Anda untuk memahami cara kerja proyek kami dengan lebih baik.

Lihat: 42 Ide & Topik Proyek Python yang Menyenangkan untuk Pemula

Membangun GUI dengan Python (Tutorial Tkinter)

Langkah #1: Mengimpor Modul

Untuk mulai mengerjakan aplikasi, pertama-tama kita harus mengimpor modul yang diperlukan. Anda dapat melakukannya dengan mengimpor modul di namespace Anda. Ini akan memungkinkan Anda untuk menggunakan konstanta dan kelas dengan namanya alih-alih mengkualifikasikannya. Ini berarti Anda dapat menggunakan "Label" dengan menggunakan namanya alih-alih mengkualifikasikannya sebagai "TkinterLabel." Itu akan membuat segalanya relatif mudah, dan Anda dapat menghemat banyak waktu karena kualifikasi setiap kelas dan konstanta bisa sangat merepotkan. Gunakan kode berikut untuk mengimpor modul:

>>> dari impor Tkinter *

Jika Python tidak ditautkan ke Tk (atau Tcl) di sistem Anda atau jika Anda tidak menginstal Tk (atau Tcl) di sistem Anda, Anda akan melihat pesan kesalahan di bagian ini. Untuk memperbaiki masalah ini, Anda memerlukan administrator sistem Anda untuk mengakses. Pastikan Anda menyelesaikan masalah ini dengan melakukan hal yang sama.

Di sisi lain, jika Anda tidak melihat pesan kesalahan di bagian ini, Anda dapat melanjutkan ke langkah berikutnya untuk membuat jendela:

>>> menang = Tk()

Kami telah menetapkan jendela kami variabel "menang." Setelah menerapkan kode di atas, Anda akan melihat jendela kecil di layar. Bilah judulnya harus menunjukkan "tk" tertulis di dalamnya.

Ini berarti Anda telah menyelesaikan langkah ini dengan sukses dan sekarang dapat mulai membangun GUI dengan Python.

Langkah #2: Menambahkan Tombol

Sekarang setelah Tkinter kita berjalan, kita dapat menambahkan tombol ke program kita. Tombol adalah bagian paling sederhana dari program GUI apa pun, jadi kita akan mulai dengannya:

>>> b1 = Tombol(menang, teks="Satu")

>>> b2 = Tombol(menang, teks="Dua")

Jendela yang kita buat di bagian terakhir adalah induk dari tombol yang kita buat sekarang. Karena Anda akan mengerjakan lebih banyak proyek Python Tkinter, Anda akan menemukan bahwa bingkai juga dapat bertindak sebagai induk untuk kelas lain. Sekarang, ketika Anda menerapkan kode ini, Anda akan melihat kejadian aneh – Tombol tidak muncul di jendela!

Itu karena kita perlu menambahkan grid dan paket ke program kita. Mereka disebut manajer geometri, dan kami telah membahasnya sebelumnya di artikel ini. Kami akan menambahkan manajer paket di bagian berikutnya:

Langkah #3: Menerapkan Manajer Paket

Kami akan menggunakan metode paket untuk menambahkan tombol kami ke widget induk. Dengan pengelola paket, Anda dapat mengetahui sisi mana dari widget induk yang Anda inginkan agar widget anak Anda dikemas. Anda dapat menggunakan TOP, RIGHT, BOTTOM, LEFT sebagai fungsi Anda. Program memilih TOP sebagai default jika Anda tidak menentukan sisi. Mari tambahkan manajer paket terlebih dahulu:

>>> b1.pack()

>>> b2.pack()

Saat Anda menambahkan tombol pertama (baris pertama kode), Anda akan melihat bahwa jendela Anda menyusut ke ukuran tombol. Demikian pula, saat Anda menambahkan tombol kedua (baris kedua kode), jendela akan mengembang sesuai dengan ukuran tombol itu. Jendela telah menempatkan tombol dalam urutan vertikal karena kami tidak menentukan sisi mana mereka harus dikemas. Mari kita kemas di sebelah kiri dengan menggunakan kode di bawah ini:

>>> b2.pack(sisi=KIRI)

>>> b1.pack(sisi=KIRI)

Perhatikan bahwa kami menggunakan manajer paket sebagian besar ketika kami harus menempatkan widget kami di dua urutan ini (horizontal dan vertikal) saja. Untuk jenis penempatan widget lainnya, kami menggunakan metode grid atau metode tempat. Anda dapat menambahkan beberapa ruang antara tombol dan jendela menggunakan fungsi 'padx' atau 'pady'. Fungsi 'padx' menambahkan bantalan ke sumbu X (kiri dan kanan) widget, dan fungsi 'pady' menambahkan bantalan ke sumbu Y (atas dan bawah) perangkat.

>>> b1.pack(sisi=KIRI, padx=10)

>>> b2.pack(sisi=KIRI, padx=10)

Kami merekomendasikan bereksperimen dengan padding widget. Ini akan membantu Anda dalam memahami berbagai cara Anda dapat memodifikasi penempatan widget. Padding adalah konsep yang menantang untuk dikuasai, jadi akan lebih baik untuk mencobanya sebelum Anda melanjutkan ke bagian berikutnya.

Langkah #4: Manajer Grid

Manajer geometri populer lainnya di Tkinter adalah manajer grid. Seperti yang telah kita bahas sebelumnya di artikel kami, pengelola kisi memungkinkan Anda membagi induk menjadi baris dan kolom. Anda dapat menempatkan widget anak di sel kisi induk. Anda dapat mengubah lebar dan panjang setiap kolom dan baris sesuai dengan kebutuhan Anda. Tidak setiap kolom harus memiliki lebar yang sama. Demikian pula, setiap baris tidak harus memiliki ketinggian yang sama. Jadi, pengelola kisi memberi Anda lebih banyak kebebasan berkreasi dalam hal mengedit tampilan dan penempatan widget Anda.

Kami akan membuat jendela baru dengan tombol yang sama yang kami buat sebelumnya untuk menguji pengelola kisi. Namun, kami akan menambahkan tombol dalam kotak 2x2:

>>> menang = Tk()

>>> b1 = Tombol(menang, teks="Satu")

>>> b2 = Tombol(menang,teks="Dua")

>>> b1.grid(baris=0, kolom=0)

>>> b2.grid(baris=1, kolom=1)

Anda akan melihat bahwa program kami telah meninggalkan beberapa sel kosong. Itu karena kami tidak menambahkan apa pun ke baris 0, kolom 1 (atau baris 1 dan kolom 0). Kami akan mencoba widget baru untuk melihat sesuatu yang menarik:

>>> l = Label(win, text="Ini adalah label")

>>> l.grid(baris=1, kolom=0)

Setelah Anda menambahkan kode di atas, Anda melihat bahwa tombol kedua bergeser ke kanan untuk mengakomodasi teks. Akan lebih baik untuk mencoba pengelola kisi dengan beberapa widget untuk melihat cara kerjanya.

Harus Dibaca: Gaji Pengembang Django di India

Langkah #5: Meningkatkan Tata Letak

Di bagian ini kita akan mencoba widget baru bernama frame. Bingkai hanya untuk memuat widget lain. Anda dapat mengemas beberapa widget ke dalam bingkai atau menggunakan kisi untuk menempatkannya di tempat yang sama. Anda juga dapat mengemas berbagai bingkai ke dalam satu bingkai. Fitur ini memungkinkan Anda membuat tata letak lanjutan untuk program GUI Anda. Misalnya, kami akan menambahkan tiga tombol ke bingkai berturut-turut. Tambahkan tombol secara horizontal lalu kemas label secara vertikal dengan bingkai:

>>> menang = Tk()

>>> f = Bingkai (menang)

>>> b1 = Tombol(f, “Satu”)

>>> b2 = Tombol(f, “Dua”)

>>> b3 = Tombol(f, “Tiga”)

>>> b1.pack(sisi=KIRI)

>>> b2.pack(sisi=KIRI)

>>> b3.pack(sisi=KIRI)

>>> l = Label(win,”Label ini melebihi semua tombol”)

>>> l.pack()

>>> f.pack()

Seperti yang telah kita bahas sebelumnya di artikel, Anda juga dapat menggunakan metode tempat sebagai manajer geometri. Metode tempat memungkinkan Anda untuk menempatkan widget di lokasi tertentu di dalam jendela atau bingkai. Namun, kami tidak menyarankan untuk sering menggunakan metode tempat karena membatasi respons program.

Dengan fungsi grid, Anda dapat menggunakan parameter 'sticky' yang memungkinkan Anda menggunakan koordinat peta (S, N, W, SW, NE, dll.) untuk menentukan penempatan widget. Sebelum kita melanjutkan ke bagian berikutnya, pastikan Anda memahami fungsi-fungsi yang telah kita bahas. Uji kisi, dan bingkai berfungsi bersama untuk melihat bagaimana Anda dapat menggunakannya dalam proyek GUI Python lainnya.

Langkah # 6: Membuat Tombol Berguna

Jika Anda mengklik tombol yang telah kami buat sejauh ini, Anda pasti memperhatikan bahwa tombol tersebut tidak responsif (tidak melakukan apa-apa). Mereka tertekan ketika Anda mengklik dan menyorot ketika Anda mengarahkan kursor ke atasnya, tetapi mereka tidak melakukan fungsi apa pun. Untuk membuat tombol kami melakukan fungsi tertentu, kami harus menggunakan fungsi 'konfigurasi'.

Kita dapat meneruskan argumen kata kunci apa pun ke metode 'konfigurasi' widget untuk meneruskannya saat membuatnya. Berikut ini contohnya:

>>> b1.configure(text="Uno")

Parameter 'command' mengikat tombol ke fungsi callback saat Anda membuatnya atau menambahkan 'configure' ke dalamnya. Untuk memahami cara kerjanya, kami akan membuat fungsi yang mencetak pesan:

>>> def but1():

… print(“Tombol satu ditekan”)

>>> b1.configure(command=but1)

Jadi ketika Anda mengklik tombol yang bersangkutan, itu akan mencetak pesan.

Langkah # 7: Menambahkan Widget Entri

Widget entri memungkinkan pengguna memasukkan teks ke dalam program. Namun, kita harus membuat widget entri berfungsi seperti yang kita lakukan dengan tombol. Widget entri harus mengambil (dan mengatur) teks. Agar widget entri dapat menjalankan fungsi ini, Anda harus menggunakan objek Tkinter 'StringVar.' Objek 'StringVar' menyimpan teks dalam bentuk string dan membuatnya dapat dibaca melalui get.

Kami akan membuat jendela baru untuk menguji widget entri kami:

>>> menang = Tk()

>>> v = StringVar()

>>> e = Entri(win,textvariable=v)

>>> e.pack()

Sekarang mari tambahkan "ini adalah tes" sebagai entri dan ambil yang sama melalui StringVar:

>>> v.get()

"ini adalah sebuah ujian"

Anda sekarang dapat mengatur teks menjadi StringVar dan membuatnya muncul di widget:

>>> v.set("ini di set dari program")

Widget Tambahan: Widget Kotak Daftar

Selain widget entri, kita dapat menambahkan widget kotak daftar. Widget kotak daftar memungkinkan pengguna memilih item dari menu. Kami akan membuat jendela baru untuk mencoba widget kotak daftar:

>>> menang = Tk()

>>> lb = Listbox (menang, tinggi = 3)

>>> lb.pack()

>>> lb.insert(AKHIR, “entri pertama”)

>>> lb.insert(AKHIR, “entri kedua”)

>>> lb.insert(AKHIR, “entri ketiga”)

>>> lb.insert(END, “entri keempat”)

Anda dapat menyisipkan item di awal, tengah, dan akhir daftar. Anda juga dapat menghapusnya. Jika ada terlalu banyak item dalam daftar, Anda dapat menambahkan bilah gulir:

>>> sb = Scrollbar (menang, orientasi = VERTIKAL)

>>> sb.pack(sisi=KIRI, isi=Y)

Untuk membuat scrollbar kami berfungsi, kami harus menggunakan fungsi panggilan balik:

>>> sb.configure(command=lb.yview)

>>> lb.configure(yscrollcommand=sb.set)

Metode pemilihan kutukan mengembalikan item kepada Anda saat Anda memilihnya di kotak daftar. Ini akan mengembalikan Tuple kosong jika Anda tidak memilih item apa pun.

Langkah #8: Langkah Terakhir

Kami akan menggunakan semua hal yang kami pelajari di tutorial Tkinter kami untuk membuat editor daftar telepon:

Jumlah Kode

#!/usr/bin/env python3

dari impor tkinter *

dari impor ponsel *

def which_selected():

print(“Pada {0}”.format(select.curselection()))

kembali int(pilih.kurselection()[0])

def add_entry():

phonelist.append([fnamevar.get(), lnamevar.get(), phonevar.get()])

set_pilih()

def update_entry():

phonelist[which_selected()] = [fnamevar.get(),

lnamevar.get(),

phonevar.get()]

def delete_entry():

del daftar telepon[yang_dipilih()]

set_pilih()

def load_entry():

fname, lname, telepon = daftar telepon[yang_dipilih()]

fnamevar.set(namaf)

lnamevar.set(lnama)

phonevar.set(telepon)

def make_window():

fnamevar global, lnamevar, phonevar, pilih

menang = Tk()

frame1 = Bingkai (menang)

frame1.pack()

Label(frame1, text=”First Name”).grid(row=0, column=0, sticky=W)

fnamevar = StringVar()

fname = Entri (frame1, variabel teks = fnamevar)

fname.grid(baris=0, kolom=1, lengket=W)

Label(frame1, text="Last Name").grid(row=1, column=0, sticky=W)

lnamevar = StringVar()

lname = Entri (frame1, variabel teks = lnamevar)

lname.grid(baris=1, kolom=1, lengket=W)

Label(frame1, teks=”Telepon”).grid(baris=2, kolom=0, lengket=W)

phonevar = StringVar()

telepon = Entri (frame1, variabel teks = phonevar)

phone.grid(baris=2, kolom=1, lengket=W)

frame2 = Bingkai(menang) # Baris tombol

frame2.pack()

b1 = Tombol(frame2, teks=" Tambah ", perintah=tambah_entri)

b2 = Tombol(frame2, teks="Update", perintah=update_entry)

b3 = Tombol(frame2, teks=”Hapus”, perintah=hapus_entri)

b4 = Tombol(frame2, teks=”Muat”, perintah=load_entry)

b5 = Tombol(frame2, teks="Refresh", perintah=set_select)

b1.pack(sisi=KIRI)

b2.pack(sisi=KIRI)

b3.pack(sisi=KIRI)

b4.pack(sisi=KIRI)

b5.pack(sisi=KIRI)

frame3 = Frame(win) # pilih nama

frame3.pack()

gulir = Bilah gulir (frame3, orient = VERTIKAL)

pilih = Listbox(frame3, yscrollcommand=scroll.set, height=6)

scroll.config(command=select.yview)

scroll.pack(sisi=KANAN, isi=Y)

pilih.pack(side=LEFT, fill=BOTH, expand=1)

kembali menang

def set_select():

phonelist.sort(key=lambda record: record[1])

pilih. hapus (0, SELESAI)

untuk fname, lname, telepon di daftar telepon:

select.insert(END, “{0}, {1}”.format(lname, fname))

menang = make_window()

set_pilih()

menang.mainloop()

Berikut daftar teleponnya:

daftar telepon = [['Chris', 'Meyers', '241-343-4349'],

['Robert', 'Smith', '202-689-1234'],

['Janet', 'Jones', '609-483-5432'],

['Ralph', 'Barnhart', '215-683-2341'],

['Eric', 'Nelson', '571-485-2689'],

['Ford', 'Prefek', '703-987-6543'],

['Maria', 'Zigler', '812-567-8901'],

['Bob', 'Smith', '856-689-1234']]

Program yang kami bagikan di sini adalah contohnya. Anda dapat membuat program Anda dengan fungsi-fungsi yang telah kita bahas dalam tutorial Tkinter ini. Program di atas tidak memiliki beberapa fungsi, seperti tidak memiliki opsi untuk menyimpan perubahan apa pun. Anda dapat menambahkan fungsi simpan sendiri dengan membuat tombol yang dapat melakukan tugas ini.

Harus Dibaca: Rantai Markov di Tutorial Python

Pelajari Lebih Lanjut Tentang Proyek GUI Python dan Python

Bekerja pada proyek Python Tkinter bisa sangat menyenangkan jika Anda tahu apa yang Anda lakukan. Mereka juga merupakan cara yang bagus untuk memahami poin kuat (dan lemah) Anda. Anda dapat mempelajari lebih lanjut tentang Python; kami sarankan menuju ke blog kami. Berikut adalah beberapa sumber untuk bacaan lebih lanjut:

  • 10 Proyek GUI Python
  • Cara membuat chatbot dengan Python
  • 42 ide proyek Python

Apa pendapat Anda tentang proyek ini? Sudahkah Anda mengerjakan proyek Python Tkinter lainnya? Beritahu kami.

Jika Anda penasaran untuk belajar tentang ilmu data, lihat Program PG Eksekutif IIIT-B & upGrad dalam Ilmu Data yang dibuat untuk para profesional yang bekerja dan menawarkan 10+ studi kasus & proyek, lokakarya praktis, bimbingan dengan pakar industri, 1 -on-1 dengan mentor industri, 400+ jam pembelajaran dan bantuan pekerjaan dengan perusahaan-perusahaan top.

Apakah Python cocok untuk membuat antarmuka pengguna grafis?

Python memiliki sejumlah kerangka kerja antarmuka pengguna grafis, mulai dari Tkinter hingga sejumlah solusi lintas platform lainnya, serta binding khusus platform. Membuat antarmuka pengguna grafis cepat dan mudah ketika Python dikombinasikan dengan Tkinter. Python sangat ideal untuk pembuatan GUI karena memiliki banyak widget bawaan, menghasilkan jendela dengan cepat, memiliki teknik penanganan peristiwa yang kuat, dan memiliki kemampuan menggambar yang belum sempurna.

Tkinter atau KIVY: mana yang lebih baik digunakan?

Kivy adalah kerangka kerja Python sumber terbuka dan gratis untuk membuat atau merancang program antarmuka pengguna yang unik namun menarik. Jika Anda seorang pengembang python yang suka membuat aplikasi, KIVY adalah pilihan yang sangat baik untuk membuat aplikasi yang lebih dinamis. Tkinter adalah antarmuka Python yang paling banyak digunakan untuk mengembangkan aplikasi GUI dengan cepat dan mudah. Jika Anda baru mengenal Python dan ingin mempelajari cara membuat antarmuka komputer, mulailah dengan Tkinter dan pelajari dasar-dasarnya.