Pembaca seperti Anda membantu mendukung MUO. Saat Anda melakukan pembelian menggunakan tautan di situs kami, kami dapat memperoleh komisi afiliasi. Baca selengkapnya.

Membuat kalender adalah cara yang bagus untuk mempelajari cara membuat aplikasi GUI dengan modul Tkinter Python. Anda dapat menggunakan aplikasi ini untuk mengelola dan merencanakan acara sebelumnya.

Melangkah lebih jauh, Anda dapat memperluas aplikasi untuk melacak rapat yang akan datang, dan menyetel pengingat. Anda bahkan dapat memperkenalkan kolaborasi dengan kalender pengguna lain untuk menghindari konflik penjadwalan.

Semuanya dimulai dengan kerangka dasar aplikasi Kalender GUI.

Kalender, Tkinter, dan Modul DateTime

Untuk membuat Kalender GUI, Anda akan menggunakan Kalender, Tkinter, dan Modul DateTime. Itu Modul kalender hadir dengan Python dan memungkinkan Anda untuk mengeksekusi tindakan terkait tanggal, bulan, dan kalender.

Tkinter memungkinkan Anda membuat aplikasi desktop. Ini menawarkan berbagai widget, pustaka bermanfaat, objek kanvas, dan pengurai HTML/XML/PDF. Untuk membangun aplikasi GUI, yang perlu Anda lakukan adalah:

instagram viewer

  1. Impor perpustakaan.
  2. Buat jendela.
  3. Tambahkan widget ke jendela itu.
  4. Panggil loop peristiwa utama untuk melakukan tindakan berdasarkan interaksi pengguna.

Untuk menginstal Tkinter ke sistem Anda, buka terminal dan jalankan:

pip instal tkinter

Modul DateTime adalah modul bawaan lainnya. Ini menawarkan beberapa kelas yang dapat menangani tanggal, waktu, dan interval waktu. Dengan modul ini, Anda dapat membuat penjadwal acara, jam alarm, kalkulator tanggal, dan aplikasi zona waktu.

Cara Membuat Kalender GUI Menggunakan Python

Anda dapat menemukan kode sumber Kalender GUI menggunakan Python di sini repositori GitHub.

Mulailah dengan mengimpor modul Tkinter, Calendar, dan DateTime. Tentukan fungsi, printCalendar. Menggunakan mendapatkan() metode pada Spinbox (ditentukan nanti dalam kode) untuk mengekstrak bulan dan tahun yang telah dipilih pengguna. Berikan nilai ini ke modul kalender untuk mendapatkan kalender teks berformat yang mewakili tahun dan bulan yang ditentukan. Teks ini mewakili kisi-kisi monospace sederhana, dengan hari-hari yang disusun dalam minggu-minggu yang dimulai pada hari Senin.

Hapus semua data yang ada dari layar. 1.0 menunjukkan awal bidang, dan akhir menunjukkan akhir bidang. Terakhir, masukkan kalender yang dibuat sebelumnya dan tampilkan di layar.

dari tkinter impor *
impor kalender
dari tanggal Waktu impor tanggal

defprintCalendar():
bulan = int (month_box.get())
tahun = int (tahun_kotak.get())
output_calendar = calendar.month (tahun, bulan)
bidang_kalender.hapus(1.0, 'akhir')
bidang_kalender.masukkan('akhir', kalender_keluaran)

Tentukan fungsi, mengatur ulang. Hapus konten di layar dan atur bulan dan tahun ke sekarang dan gunakan konfigurasi() metode untuk menampilkannya di layar.

defmengatur ulang():
bidang_kalender.hapus(1.0, 'akhir')
var_bulan.set (bulan_saat ini)
tahun_var.set (tahun_saat ini)
month_box.config (textvariable=month_var)
year_box.config (textvariable=year_var)

Tentukan fungsi, tutup untuk menghancurkan tampilan jendela, dan keluar dari program.

defmenutup():
guiWindow.hancurkan()

Inisialisasi instance Tkinter dan tampilkan jendela root. Tetapkan judul, dimensi dalam piksel, dan nonaktifkan pengubahan ukurannya dengan mempertahankan parameter sebagai 0.

jika __nama__ == "__utama__":
guiWindow = Tk()
guiWindow.title("Kalender GUI")
guiWindow.geometri('500x550')
guiWindow.resizable(0, 0)

Tetapkan empat bingkai untuk judul tajuk, entri bulan dan tahun, tampilan, dan tombol. Itu melakukan fungsi wadah, mengarahkan penempatan widget lain. Itu mengatur tata letak dan menyediakan padding untuk widget ini menggunakan bagian persegi panjang di layar.

Atur bingkai dalam blok sebelum menempatkannya di guiwindow menggunakan mengemas() metode. Tetapkan nilai perluas ke benar untuk memungkinkan widget mengubah ukuran dan meluaskan ruang yang tersedia. Mengatur mengisi ke keduanya untuk memungkinkan widget diperluas untuk menempati seluruh jendela dalam arah x dan y.

 header_frame = Bingkai (guiWindow)
entry_frame = Bingkai (guiWindow)
result_frame = Bingkai (guiWindow)
button_frame = Bingkai (guiWindow)

header_frame.pack (perluas=BENAR, isi="keduanya")
entry_frame.pack (perluas=BENAR, isi="keduanya")
result_frame.pack (perluas=BENAR, isi="keduanya")
button_frame.pack (perluas=BENAR, isi="keduanya")

Tentukan tiga label untuk header, bulan, dan tahun. Atur jendela induk tempat Anda ingin meletakkannya, teks yang akan ditampilkan, gaya font beserta warna font. Kemas dan tempatkan label pada posisi yang sesuai. Rekan IntVar() dengan entry_frame untuk mengatur dan menerima data integer.

 header_label = Label (header_frame, teks="KALENDER",
jenis huruf=('Arial', '45', 'berani'), fg="#A020F0")

header_label.pack (perluas=BENAR, isi="keduanya")

label_bulan = Label (bingkai_masuk, teks="Bulan:",
jenis huruf=("Arial", "20", "berani"), fg="#000000")

year_label = Label (entry_frame, text="Tahun:",
jenis huruf=("Arial", "20", "berani"), fg="#000000")

label_bulan.tempat (x=30, y=0)
tahun_label.tempat (x=275, y=0)
month_var = IntVar (entry_frame)
year_var = IntVar (entry_frame)

Dapatkan bulan, tahun saat ini dan setel ke variabel IntVar(). Gunakan widget Spinbox untuk menentukan rentang nilai kepada pengguna. Tetapkan rentang nilai yang akan dimuat Spinbox, lebar, nilai saat ini yang harus dipegangnya, dan gaya font. Posisikan kotak dengan tepat.

 current_month = tanggal.hari ini().bulan
tahun_kini = tanggal.hari ini().tahun
var_bulan.set (bulan_saat ini)
tahun_var.set (tahun_saat ini)

month_box = Spinbox (entry_frame, from_=1, untuk =12, lebar="10",
variabelteks=var_bulan, font=('Arial','15'))

year_box = Spinbox (entry_frame, from_=0000, untuk =3000, lebar="10",
variabelteks=tahun_var, font=('Arial','15'))

kotak_bulan.tempat (x=130, y=5)
tahun_kotak.tempat (x=360, y=5)

Deklarasikan bidang teks dan atur jendela induknya, lebar, tinggi, gaya font, gaya animasi 3D, dan lebar batas. Atur widget teks dan nyatakan tiga tombol untuk menampilkan, mengatur ulang, dan menutup jendela. Tombol berisi properti warna latar tambahan dan properti perintah.

Menggunakan properti perintah, Anda dapat mengatur fungsi yang harus dijalankan setelah diklik. Tempatkan tombol dalam satu baris dengan ruang yang cukup di antara masing-masing tombol.

 calendar_field = Teks (result_frame, width=20, tinggi =8,
jenis huruf=("kurir", "18"), relief=RIDGE, lebar batas=2)

calendar_field.pack()

display_button = Tombol (button_frame, teks="MENAMPILKAN", bg="#A020F0",
fg="#E0FFFF", perintah=cetakKalender, font=('Arial', '15'))

reset_button = Tombol (button_frame, teks="MENGATUR ULANG", bg="#A020F0",
fg="#E0FFFF", perintah=setel ulang, font=('Arial','15'))

close_button = Tombol (button_frame, teks="MENUTUP", bg="#A020F0",
fg="#E0FFFF", perintah=tutup, font=('Arial','15'))

display_button.place (x=55, y=0)
reset_button.place (x=210, y=0)
close_button.place (x=350, y=0)

Itu mainloop() fungsi memberi tahu Python untuk menjalankan loop acara Tkinter dan mendengarkan acara (seperti penekanan tombol) hingga Anda menutup jendela.

 guiWindow.mainloop()

Gabungkan semua kode untuk melihat kalender GUI Anda beraksi.

Contoh Keluaran dari Kalender GUI

Saat menjalankan program di atas, program menampilkan jendela dengan bulan dan tanggal saat ini. Tombol Reset menampilkan layar yang sama saat diklik.

Saat menyetel bulan ke 3 dan tahun ke 2000, program menampilkan kalender untuk Maret 2000. Saat menekan tombol Tutup, program akan menghancurkan jendela dan menghentikan eksekusinya.

Ikuti Beberapa Proyek GUI Pemula Menggunakan Python

Membangun aplikasi GUI tidak pernah semudah ini. Modul Tkinter Python menyediakan banyak widget bermanfaat yang dapat Anda sesuaikan sepenuhnya dengan kode yang sangat sedikit. Bersamaan dengan ini, Anda mendapatkan akses ke pengelola tata letak seperti paket, kisi, dan tempat untuk memposisikan elemen sesuai keinginan Anda.

Anda dapat membuat game tes pengetikan, palet warna, pengonversi mata uang, atau kalkulator untuk memulai. Aplikasi ini menyenangkan untuk dibuat dan akan mengembangkan keterampilan pemrograman berorientasi objek Anda dengan mudah.