Ders-14: Tkinter Textbox Aracı
Tkinter Textbox Aracı
Tkinter Textbox Aracı, çok satırlı metin alanı için kullanılır. Tkinter Textbox Aracı çok güçlü ve esnektir ve çok çeşitli görevler için kullanılabilir. Temel amaçlardan biri, formlarda sıklıkla kullanıldığı için basit çok satırlı alanlar sağlamak olsa da, Tkinter Textbox Aracı basit metin editörleri veya hatta web tarayıcıları olarak da kullanılabilir. Ayrıca, Textbox Aracı CSS stillerini kullanarak bağlantıları, görüntüleri ve HTML’yi görüntülemek için kullanılabilir.
Örnek olarak aşağıda yüksekliği 4 satır, genişliği ise 50 karakterlik bir textbox araç örneği bulunmaktadır. INSERT ile bu textbox aracına yazılarımızı ekleyebiliyoruz.
import tkinter as tk
pencere = tk.Tk()
t1 = tk.Text(height=4, width=50)
t1.pack()
t1.insert(tk.END, "BTOGRENME ye hoşgeldiniz."
"\nBu dersimizde tkinter "
"\ntextbox aracını kullanacağız")
tk.mainloop()
Yukarıdaki örneği dikkatle incelersek, t1 isimli bir textbox aracı oluşturulmuş ve yüksekliği 4 satır genişliği ise 50 karakterdir. Hemen ardından ekran yerleşimi t1.pack( ) ile yapılmıştır. INSERT komutu ile textbox aracının içerisine yazı yazılmıştır. Aşağıdaki gibi bir ekran görüntüsü alırız.
Örnekten de anlaşılacağı gibi textbox araçları kullanıcının çok satırlı metin alanları eklemek istediği yerlerde kullanılır. Bu araç, mesajlaşma, bilgi gönderme veya bilgi görüntüleme ve diğer birçok görev gibi çok satırlı metnin gerekli olduğu çeşitli uygulamalar için kullanılabilir. Resimler ve bağlantılar gibi medya dosyalarını textbox aracına ekleyebiliriz.
Textbox Aracı Parametreler
bg | arka plan rengi |
fg | yazı rengi |
bd | aracın border sınırı |
height | yükseklik |
width | genişlik |
font | yazı tipi, büyüklük ve kalın,italik, altıçizgili |
cursor | imleç tipi |
insetofftime | İmlecin yanıp söndüğü milisaniye cinsinden süre kapalıdır. |
insertontime | imlecin yanıp sönmesinin açık olduğu milisaniye cinsinden süre. |
padx | yatay dolgu |
pady | dikey dolgu |
state | aracın fare veya klavye hareketlerine duyarlı olup olmayacağını belirler. |
relief | SUNKEN, RAISED, GROOVE and RIDGE gibi sınır tipleri |
Textbox Aracı Metotları
index(index) | Belirtilen dizini almak için. |
insert(index) | Belirli bir dizine bir yazı eklemek için. |
see(index) | Bir dizenin belirli bir dizinde görünür olup olmadığını kontrol eder. |
get(startindex, endindex) | belirli bir aralıktaki karakterleri almak için. |
delete(startindex, endindex) | belirtilen aralıktaki karakterleri siler. |
Textbox Aracı Tag Metotları
tag_delete(tagname) | Belirli bir etiketi silmek için. |
tag_add(tagname, startindex, endindex) | belirtilen aralıktaki dizeyi etiketlemek için |
tag_remove(tagname, startindex, endindex) | to remove a tag from specified range |
import tkinter as tk
pencere = tk.Tk()
t1 = tk.Text(font="Arial 14 bold",bg="orange",fg="white")
t1.place(x=10, y=10, width= 400,height=300)
t1.insert(tk.END, "BTOGRENME ye hoşgeldiniz."
"\nBu dersimizde tkinter "
"\ntextbox aracını kullanacağız")
tk.mainloop()
Yukarıdaki örnekte font, bg, fg gibi parametreler kullanılmıştır.Oluşturduğumuz bu textbox’ ın arkaplanı turuncu, yazı rengi ise beyazdır. Aşağıda ekran çıktısı yer almaktadır.
Tkintet Text Insert, Get Metotları
Bu örnekte textbox aracına yazı ekleme ve bu eklediğimiz yazıyı bir düğmeye basılınca başka bir araca aktarmayı göreceğiz. Aşağıdaki kodları inceleyiniz.
import tkinter as tk
pencere=tk.Tk()
pencere.title("Text Box İşlemleri")
pencere.geometry("700x450")
def metin_gonder():
metin = t1.get(1.0,tk.END)
e1.config(text=metin)
t1=tk.Text(font="Arial 12 bold",bg="brown",fg="white")
t1.place(x=10,y=10,width=400,height=300)
t1.insert(tk.END, "Btöğrenme.com\nBu dersimizde GET ve INSERT\nmetotlarını deneyeceğiz.")
e1=tk.Label(text="----",font="Arail 13 italic",fg="blue")
e1.place(x=450,y=10)
b1=tk.Button(text="GÖNDER",font="Times 13 bold",bg="black",fg="white",command=metin_gonder)
b1.place(x=10, y=350)
pencere.mainloop()
İlk olarak t1 isimli bir textbox aracı ekledik. Bu aracın arka plan rengi kahverengi yazı rengi ise beyazdır. Hemen ardından t1.insert ile oluşturduğumuz textbox aracına bir metin ekliyoruz. Parantez içerisindeki tk.END ifadesi ekleyeceğimiz yazının başlangıç noktasıdır. Eğer öncesinden textbox aracında yazı varsa sonuna ekleme yapacaktır.
Şimdi gelelim GET metoduna. Ağağıda b1 isimli butona dikkatlice bakarsanız; command=metin_gonder dikkatinizi çekecektir. Bunun anlamı butona tıklandığında metin_gonder fonksiyonunun çalışmasıdır. Üst bölümde def ile oluşturulmuş bir metin_gonder fonksiyonu oluşturulduğunu göreceksiniz. Kullanıcı bu butona tıkladığı takdirde bu fonksiyon çalışacaktır. Eğer butona tıklamazsa bu fonksiyon içerisindeki kodlar hiçbir zaman çalışmayacaktır. Şimdi metin_gonder fonksiyonun içerisini inceleyelim.
def metin_gonder():
metin = t1.get(1.0,tk.END)
e1.config(text=metin)
metin = t1.get(1.0,tk.END) ile t1 isimli textbox aracındaki yazılar metin isimli değişkene aktarılmaktadır. Parantez içerisindeki değerlerin anlamı; 1.0 başından başla tk.END ise sonuna kadar yani tüm yazıyı almaktadır.
Hemen ardında e1 isimli etiketin config ile text parametresi metin değişkenine eşitlenmektedir. Yani butona basıldığında textbox aracının içerisindeki yazılar etikette görünecektir. Aşağıda ekran resmini görebilirsiniz.
Bir Txt dosyasını TextBox Aracında Göstermek
Bu örneğimizde C sürücüsünde bulunan btogrenme.txt dosyasının içeriğini tkinter textbox aracının içerisine taşıyacağız. Aşağıdaki kodları dikkatlice inceleyiniz.
import tkinter as tk
pencere=tk.Tk()
pencere.title("Text Box İşlemleri")
pencere.geometry("700x450")
t1=tk.Text(font="Arial 12 bold",bg="brown",fg="white")
t1.place(x=10,y=10,width=400,height=300)
dosya = open ("c:/btogrenme.txt","r")
dosya_icerik = dosya.read()
t1.insert(tk.END, dosya_icerik)
pencere.mainloop()
Öncelikle t1 isimli bir textbox oluşturduk. Daha sonra python derslerimizden Temel Dosya İşlemleri isimli derstende hatırlayacağınız üzere open ve read fonksiyonları ile c sürücüsündeki btogrenme.txt dosyasını okuyoruz ve dosya_icerik isimli bir değişkene kaydediyoruz.
t1.insert(tk.END, dosya_icerik) ile okuduğumuz içeriği t1 isimli textbox aracına ekliyoruz. Aşağıda ekran görüntüsü yer almaktadır.