Takvim oluşturmak, Python'un Tkinter modülüyle GUI uygulamaları oluşturmayı öğrenmenin harika bir yoludur. Etkinlikleri önceden yönetmek ve planlamak için bu uygulamayı kullanabilirsiniz.
Daha da ileri giderek, uygulamayı yaklaşan toplantıları takip edecek ve hatırlatıcılar ayarlayacak şekilde genişletebilirsiniz. Zamanlama çakışmalarını önlemek için diğer kullanıcıların takvimleriyle işbirliğini bile başlatabilirsiniz.
Her şey bir GUI Takvim uygulamasının temel iskeletiyle başlar.
Takvim, Tkinter ve DateTime Modülleri
GUI Takvimini oluşturmak için Takvim, Tkinter ve DateTime Modülünü kullanacaksınız. bu Takvim modülü Python ile birlikte gelir ve tarih, ay ve takvimle ilgili eylemleri gerçekleştirmenizi sağlar.
Tkinter, masaüstü uygulamaları oluşturmanıza olanak tanır. Çeşitli widget'lar, yardımcı kitaplıklar, tuval nesneleri ve HTML/XML/PDF ayrıştırıcıları sunar. Bir GUI uygulaması oluşturmak için yapmanız gereken tek şey:
- Kitaplığı içe aktarın.
- Bir pencere oluşturun.
- Bu pencereye widget ekleyin.
- Kullanıcı etkileşimine dayalı eylemler gerçekleştirmek için ana olay döngüsünü çağırın.
Tkinter'ı sisteminize kurmak için bir terminal açın ve şunu çalıştırın:
pip kurulumu tkinter
DateTime modülü, yerleşik olan başka bir modüldür. Tarihler, saatler ve zaman aralıklarıyla ilgilenebilen çeşitli sınıflar sunar. Bu modül ile bir olay planlayıcı oluşturabilir, çalar saat, bir tarih hesaplayıcı ve bir saat dilimi uygulaması.
Python Kullanarak GUI Takvimi Nasıl Oluşturulur
Python kullanarak GUI Takviminin kaynak kodunu burada bulabilirsiniz. GitHub deposu.
Tkinter, Calendar ve DateTime modülünü içe aktararak başlayın. Bir işlev tanımlayın, yazdırTakvim. Kullan elde etmek() kullanıcının seçtiği ayı ve yılı ayıklamak için Spinbox'ta (kodda daha sonra tanımlanır) yöntem. Belirtilen yıl ve ayı temsil eden biçimlendirilmiş bir metin takvimi almak için bu değerleri takvim modülüne iletin. Bu metin, Pazartesi'den başlayarak haftalar halinde düzenlenmiş günlerle basit bir tek aralıklı ızgarayı temsil eder.
Ekrandaki mevcut tüm verileri temizleyin. 1.0 alanın başlangıcını gösterir ve son alanın sonunu gösterir. Son olarak, daha önce oluşturulan takvimi ekleyin ve ekranda görüntüleyin.
itibaren tkinter içe aktarmak *
içe aktarmak takvim
itibaren tarih saat içe aktarmak tarih
kesinlikleyazdırTakvim():
ay = int (ay_kutusu.get())
yıl = int (year_box.get())
output_calendar = takvim.ay (yıl, ay)
takvim_alanı.delete(1.0, 'son')
takvim_alanı.insert('son', çıktı_takvimi)
Bir işlev tanımlayın, Sıfırla. Ekrandaki içeriği silin ve ay ve yılı şimdiki zamana ayarlayın ve yapılandırma() ekranda gösterme yöntemi.
kesinlikleSıfırla():
takvim_alanı.delete(1.0, 'son')
ay_var.set (geçerli_ay)
yıl_var.set (mevcut_yıl)
ay_kutusu.config (metin değişkeni=ay_var)
year_box.config (textvariable=year_var)
Bir işlev tanımlayın, pencere görüntüsünü yok etmek için kapatın ve programdan çıkın.
kesinliklekapalı():
guiWindow.destroy()
Tkinter örneğini başlatın ve kök pencereyi görüntüleyin. Başlığı, boyutları piksel cinsinden ayarlayın ve parametreleri 0 olarak tutarak yeniden boyutlandırmasını devre dışı bırakın.
eğer __isim__ == "__ana__":
guiWindow = Tk()
guiWindow.title("GUI Takvimi")
guiWindow.geometry("500x550")
guiWindow.resizable(0, 0)
Başlık başlığı, ay ve yıl girişi, ekran ve düğmeler için dört çerçeve tanımlayın. Diğer pencere öğelerinin yerleşimini yönlendirerek bir kap işlevini yerine getirir. Ekrandaki dikdörtgen bölümleri kullanarak düzeni düzenler ve bu widget'lar için dolgu sağlar.
kullanarak pencereye yerleştirmeden önce çerçeveleri bloklar halinde düzenleyin. ambalaj() yöntem. Widget'ın kullanılabilir alanında yeniden boyutlandırmasını ve genişlemesini sağlamak için genişletmenin değerini true olarak ayarlayın. Yı kur doldurmak Widget'ın tüm pencereyi x ve y yönünde kaplayacak şekilde genişlemesine izin vermek için her ikisine de öznitelik verin.
header_frame = Çerçeve (guiWindow)
entry_frame = Çerçeve (guiWindow)
sonuç_çerçevesi = Çerçeve (guiWindow)
button_frame = Çerçeve (guiWindow)
header_frame.pack (genişlet=Doğru, doldur="ikisi birden")
entry_frame.pack (genişlet=Doğru, doldur="ikisi birden")
sonuç_çerçevesi.pack (genişlet=Doğru, doldur="ikisi birden")
button_frame.pack (genişlet=Doğru, doldur="ikisi birden")
Başlık, ay ve yıl için üç etiket belirtin. Yerleştirmek istediğiniz ana pencereyi, göstereceği metni, yazı tipi stiliyle birlikte yazı tipi rengini ayarlayın. Etiketleri paketleyin ve uygun bir konuma yerleştirin. İş arkadaşı IntVar() ile giriş_çerçevesi tamsayı verilerini ayarlamak ve almak için.
header_label = Etiket (header_frame, metin="TAKVİM",
yazı tipi=("arial", '45', 'gözü pek'), fg="#A020F0")header_label.pack (genişlet=Doğru, doldur="ikisi birden")
ay_etiketi = Etiket (giriş_çerçevesi, metin="Ay:",
yazı tipi=("arial", "20", "gözü pek"), fg="#000000")year_label = Etiket (giriş_çerçevesi, metin="Yıl:",
yazı tipi=("arial", "20", "gözü pek"), fg="#000000")
ay_etiketi.yer (x=30y=0)
yıl_etiketi.yer (x=275y=0)
ay_var = IntVar (giriş_çerçevesi)
year_var = IntVar (giriş_çerçevesi)
Geçerli ayı, yılı alın ve IntVar() değişkenine ayarlayın. Kullanıcıya bir değer aralığı belirtmek için Dönen Kutu parçacığını kullanın. Spinbox'ın içereceği değer aralığını, genişliği, tutması gereken geçerli değeri ve yazı tipi stillerini ayarlayın. Kutuları uygun şekilde konumlandırın.
cari_ay = tarih.bugün().ay
cari_yıl = tarih.bugün().yıl
ay_var.set (geçerli_ay)
yıl_var.set (mevcut_yıl)Month_box = Spinbox (giriş_çerçevesi, from_=1, için=12, genişlik="10",
textvariable=ay_var, yazıtipi=("arial",'15'))year_box = Spinbox (giriş_çerçevesi, from_=0000, için=3000, genişlik="10",
textvariable=year_var, font=("arial",'15'))
ay_kutusu.yer (x=130y=5)
yıl_kutusu.yer (x=360y=5)
Bir metin alanı bildirin ve ana penceresini, genişliğini, yüksekliğini, yazı tipi stilini, 3B animasyon stilini ve kenarlık genişliğini ayarlayın. Metin widget'ını düzenleyin ve pencereyi görüntülemek, sıfırlamak ve kapatmak için üç düğme belirleyin. Düğmeler, ek bir arka plan rengi özelliği ve bir komut özelliği içerir.
Command özelliğini kullanarak, tıklandığında yürütmesi gereken işlevi ayarlayabilirsiniz. Düğmeleri, aralarında yeterli boşluk olacak şekilde tek bir sıraya yerleştirin.
Calendar_field = Metin (sonuç_çerçevesi, genişlik=20, yükseklik=8,
yazı tipi=("kurye", "18"), kabartma=RIDGE, kenar genişliği=2)takvim_alanı.pack()
display_button = Düğme (düğme_çerçevesi, metin="GÖRÜNTÜLEMEK", bg="#A020F0",
fg="#E0FFFF", komut=yazdırTakvim, yazı tipi=("arial", '15'))reset_button = Düğme (düğme_çerçevesi, metin="SIFIRLA", bg="#A020F0",
fg="#E0FFFF", komut=sıfırla, yazı tipi=("arial",'15'))close_button = Düğme (düğme_çerçevesi, metin="KAPALI", bg="#A020F0",
fg="#E0FFFF", komut=kapat, yazı tipi=("arial",'15'))
display_button.place (x=55y=0)
reset_button.place (x=210y=0)
close_button.place (x=350y=0)
bu Ana döngü() işlevi, Python'a Tkinter olay döngüsünü çalıştırmasını ve siz pencereyi kapatana kadar olayları (düğmeye basmalar gibi) dinlemesini söyler.
guiWindow.mainloop()
GUI takviminizi çalışırken görmek için tüm kodu bir araya getirin.
GUI Takviminin Örnek Çıktısı
Programı çalıştırdığınızda, programın üzerinde geçerli ay ve tarihin bulunduğu bir pencere görüntülenir. Sıfırla düğmesi tıklandığında aynı ekranı görüntüler.
Ay 3 ve yıl 2000 olarak ayarlandığında, program Mart 2000 takvimini görüntüler. Kapat düğmesine basıldığında, program pencereyi yok eder ve çalışmasını durdurur.
Python Kullanarak Bazı Acemi GUI Projelerini Üstlenin
GUI uygulamaları oluşturmak hiç bu kadar kolay olmamıştı. Python'un Tkinter modülü, çok az kodla tamamen özelleştirebileceğiniz birçok yararlı pencere öğesi sağlar. Bununla birlikte, pack, grid ve place to position öğeleri gibi yerleşim yöneticilerine isteğinize göre erişebilirsiniz.
Başlamak için bir yazma testi oyunu, renk paleti, para birimi dönüştürücü veya hesap makinesi oluşturabilirsiniz. Bu uygulamaları oluşturmak eğlencelidir ve nesne yönelimli programlama becerilerinizi kolaylıkla geliştirecektir.