Python ile yapılabileceklerin sınırı yok gibi, bu yazımda Python dilinin Tkinter kütüphanesinin ne olduğunu ve genel mantığının nasıl işlediğini anlatacağım. Bu anlatımımı bir sayı tahmin oyunu çerçevesinde gerçekleştireceğim. Öncelikle;
GUI(Graphical User Interface) Nedir?
Türkçe olarak kısaca kullanıcı arayüzü ya da direkt arayüz olarak adlandırabileceğimiz GUI, elektronik cihazların ekranlarında karşımıza çıkan tüm ikon, simge, buton ve genel düzenin tasarlanmasıdır. Eski zamanlarda henüz GUI konuşulmazken elektronik cihazı kullanmak için cihazın komut satırına yazılan kodlar ile bu iş yapılmaktaydı. Şimdilerde ise çok gelişmiş GUI çalışmaları sayesinde okuma yazma bilmeyen insanlar dahi ve hatta hayatında çok az elektronik cihaza muhatap olmuş insanlar bile bu arayüzler sayesinde hiç zorlanmadan bu cihazları kullanabilmektedir.
Artık günümüzde arayüz tasarımı cihazların tercih edilme sebeplerinden birisidir. Android ve IOS telefonlarda kullanılan arayüzler bu telefonları diğerinden daha tercih edilebilir ya da tam aksine daha az tercih edilir bir duruma getirebiliyor. Daha önce kullanmadığımız farklı bir elektronik cihaz aldığımızda kullanma kılavuzunu kullanmadan cihazı hemen kolaylıkla kullanabilir duruma gelmemiz de yine GUI sayesindedir. Ve ikinci olarak;
Tkınter nedir?
Tkinter, Pyhton dilinde bulunan açık kaynaklı, standart GUI(Graphical User Interface) geliştirme kütüphanesidir. Python’ın yüklenmesiyle birlikte hazır olarak gelir, ekstra yükleme/kurma işlemlerini yapmamıza gerek yoktur. GUI araçları arasında en iyisi olduğu iddia etmek zor. Bu kütüphane aslında Python’da algoritma geliştirme ve GUI araçlarına temel seviyede girmek için kullanılır. Fakat kullanımının oldukça kolay olması ve birçok platformda çalışabilir olması tercih edilme sebeplerindendir.
tkınter ile neler Yapılabilir?
Sınırsız. Aslında neler yapılabileceği sizin hayal gücünüze kalıyor. Youtube’da Tkinter yapılmış bir çok proje var. Bunlara göz atabilirsiniz. Hatta bir tanesini ben aşağıya bırakayım;
Tkinter ile Sayı Tahmin oyunu yaptım
Ben de Tkinter’ı genel olarak öğrenebilmek için bir proje yaptım. Sayı tahmin oyunu. Bilgisayarın random olarak 1-500 arasında belirlediği sayıyı tahmin etmeye çalışıyoruz. İstersek kendimize süre kısıtı da koyabiliriz. Şimdi bakalım kodlara Tkinter nasıl çalışıyormuş görelim;
Öncelikle import etmemiz gereken modülleri görelim.

- Tkinter’ı tüm özellikleriyle import ediyoruz.
- Kullanıcıya mesaj/uyarı vermek için messagebox’ı import ediyoruz.
- Rastgele bir sayı üretebilmek için ise random modülünü import ediyoruz.
- Son olarak ise sayaç özelliğinde kullanmak üzere time modülünü import ediyoruz.

Oyunun oynanması için açılacak pencerenin genel özelliklerini burada belirliyoruz. Pencere ekranın neresinde açılacağını? Hangi boyutta açılacağını? Pencere başlığını ve rengini belirledik.

Penceremizde gözükecek etiketleri yani yazıları label ile bu kısımda belirledik. Pack, etiketlerin ekranda sabitlenmesini sağlıyor. Onu yazmazsak etiketi ekranda göremeyiz.

Burada kullandığımız entry ile kullanıcıdan veri alabiliyoruz. Normal kod satırında kullandığımız input gibi düşünebilirsiniz. Kullanıcının ekranda veri girebileceği bir kutucuk oluşturuyor.

Ekranda gözükmesini istediğimiz ve tıklandığında bir fonksiyonu çalıştıracak olan butonları “Button” ile ekledik. 4 butonumuz ve 4 fonksiyonumuz var, her butona bir fonksiyon atadık. Butonların ekranda görünecek isimleri “text” ile belirlendi, işlevleri ise “command” ile belirlendi.

Biraz önce koyduğumuz butonlara tıklandığında gerçekleşecek olan işlevlerin fonksiyonları buradadır. Program, “Tahmin et” butonuna basıldığında kullanıcıdan alınan sayı ile random sayıyı karşılaştıracak ve “messagebox” ile kullanıcıya gerekli geri bildirimleri verecektir. “Tekrar Oyna” butonuna basıldığında ise yeni bir random sayı atanacaktır. Çıkış butonuna basıldığında “messagebox” ile kullanıcıya uyarı gönderilecek ve uyarıdan “true” değeri gelirse “destroy” ile pencere kapatılacaktır.
Son olarak oyuna “Geri Sayım ile Oyna” butonu eklemiştim. Bu butona basıldığında ise yeni bir pencere açılıyor. ve kullanıcının girdiği süreye göre geri sayım başlatılıyor. Süre bittiğinde random sayı yenileniyor.
Kodların tamamına ulaşmak için Github hesabıma göz atabilirsiniz.
