Tkinter-Python Nasıl Kullanılır Bahsetmeye Çalıştım Umarım Öğretici Olur..
Tkinter
Biliyorsunuz ilk önce kullanacağımız modulu indirmemiz lazım güncel python indiren kişilerde yanında geliyor bazı linux işletim sistemleri sıkıntı çıkarabilir. Vereceğim kod ile düzeltebilirsiniz :
Pencere oluşturma
Her şeyi tasarlamak için ik pencere oluşturmamız lazım
Tk ( ) şeklinde yazmamın sebebi Tk ( ) dediğimiz Tkinterin hazinesidir.. Pencere açılıp kapanacaktır burda bir yanlışlık yoktur hatta tam istediğimiz gibi olmuştur. Komutu verdik işlevini yaptı Pencere aç dedik Açıp kapattı.. Duyar gibiyim kapanmamasını nasıl sağlayacağız dediğinizi biraz ileride karşınıza gelecek.
Pencere Başlığı
Bunun için title( ) modülünü kullanacağız. Title ingilizce olarak da başlık anlamına gelmekte.
Pencere Boyutları ve Konumu
Bunun için Tkinterin içindeki geometry metothunu kullanacağız. Penceremizi 500px , boyunu 200px yapalım.
Şimdi de penceremizi soldan 300px , yukarıdan 100px uzaklaştıralım (Pencere boyutunu 200x200 olarak alıyorum)
Bu fonksiyon iki parametre alıyor. İlk i enini ikincisi boyunu bunları engelleyebilirsiniz. True ve false kalıplarını kullanacağız mesela enini engellemek istiyorum Bunun için resizable ( ) kullanacağım
Pencere Boyutlarını Ve Konumunu Öğrenme
Karşımıza çıkıcak değerlerin hiç bir manası yok ama birde pencere.update ( ) yazarsak...
from tkinter import *
Şimdi istediğimiz değerleri bize gösterecektir..
Pencere Durumu
Bunun için state( ) kullanacağız
Pencere Özellikleri
Özellikler için wm_attributes( ) kullanacağız. İngilizce attributes "özellikler" anlamına gelir.
>> Saydam Pencere
Saydamlaştırmak için -alpha komutunu kullancağız. Değerlerin yazımı "%50 ise 0.5 e tekabul eder , %30 sa 0.3 e tekabul eder.
>> Her Zaman Üstte Olan Pencere
Bu özelliği -topmost özelliği ile yapacağız
>>Tam Ekran Pencere
Bu özelliği yapmak için -fullscreen komutun kullanacağız.
Ekran Çözünürlüğünü Bulma
Fare İmlecinin Konumunu Bulma
Pencere Çubuğunu Kaldırma
Pencerenin üstünde bulunan pencere başlığı kısmını overrideredirect ( ) fonksiyonu ile kaldırabiliriz
Aynı Programda Birden Fazla Pencere Oluşturma
Böyle daha da fazla yapabilir boyutlarını değiştirebilirsiniz.
Pencere Elemanları
>>Label (Etiket Ekleme)
Label kelimesi ingilizce etiket anlamına gelir. Boş pencerede test edelim
>>Merhaba Dünya Yazısı
Yazı Rengi
Göründüğü gibi değişecektir.
Yazı Arka Plan Rengi
Yazı Alanının Boyutu
Boyutunu ayarlamak için 2 parametremiz var , width ( genişlik ) ve height (yükseklik)
Yazı İç Boşluğu
Bunun için padx (Sağ-Sol Boşluk), pady(Üst-Alt Boşluğu)
Yazı Tipi Ayarları
Bunları Label ( ) özelliği "font" ile ayarlayabiliriz.
Yazı Genişliği
Yazıyı Yaslama
Sola Yaslama
Sağa Yaslama
Ortaya Yaslama
Yazının Kendi İçinde Konumu
Yazının genişliğini ve yüksekliğini çoğalttığımızda yazı standart olarak ortada gözüküyor. Bu yazıyı sağa-sola yukarı-aşağı taşımamız için "anchor" parametresini kullanıyoruz.
Hangi harf neye tekabul eder :
Örnek Olarak Yukarı - Sağ Yapalım
Label Üzerinde Gelindiğinde Fare İmleci Değiştirme
Bu işlemi cusor parametresi ile yapacağız .
Uygulamak için :
Resim Ekleme
Gif dosyasının ek olarak yazılacak cümlenin veya kelimenin yeri değişebilir :
Button
Label özelliklerinin hepsinde geçerlidir. "command" parametresini kullanır. Buton Yapalım :
Butona Basınca Yazı Değiştirmek
Pasif Buton
Yazılım İle Butona Basma
invoke( ) fonksiyonunu kullanacağız.
Buton İle Program Kapatmak
Sonuna Geldik Umarım Öğretici Olmuştur Bildiğim Her Şeyi Yansıtmaya Çalıştım
Kod:
[SIZE="3"][COLOR="white"][B]Öğreneceğimiz Konular :
>Pencere oluşturma
>Pencere başlığı
>Pencere Boyutları ve Konumu
>Pencere Boyutlarını ve Konumunu Öğrenme
>Pencere Durumu
>Pencere Özellikleri
>>Saydam Pencere
>>Her Zaman Üstte Olan Pencere
>>Tam Ekran Pencere
>Ekran Çözünürlüğünü Bulmak
>Fare İmlecinin Konumunu Bulmak
>Pencere Çubuğunu Kaldırmak
>Aynı Programda Birden Çok Pencere
>>Pencere Elemanları
>Label(Etiket Eklemek)
>>Merhaba Dünya Yazısı
>>Yazı Rengi
>>Yazı Arka Plan Rengi
>>Yazı Alanının Boyutu
>>Yazı İç Boşluğu
>>Yazı Tipi Ayarları
>>Yazı Genişliği
>>Yazıyı Yaslama
>>Yazının Kendi İçindeki Konumu
>>Label Üzerine Fare İmlecini Değiştirmek
>>Resim Ekleme
>Button
>>Butona Basınca Eleman Değiştirmek
>>Buton Durumu
>>Yazılım İle Butona Basmak
>>Buton ile Programı Kapatmak
[COLOR="Pink"]Not: (>) İle gösterilen başlık (>>) ile gösterilen başlık içeriğidir.[/COLOR]
[/B][/COLOR][/SIZE]
Biliyorsunuz ilk önce kullanacağımız modulu indirmemiz lazım güncel python indiren kişilerde yanında geliyor bazı linux işletim sistemleri sıkıntı çıkarabilir. Vereceğim kod ile düzeltebilirsiniz :
Kod:
[COLOR="Pink"]sudo apt-get install python3-tk [/COLOR]
Pencere oluşturma
Her şeyi tasarlamak için ik pencere oluşturmamız lazım
Kod:
[COLOR="pink"]from tkinter import *
pencere = Tk ( )[/COLOR]
Pencere Başlığı
Bunun için title( ) modülünü kullanacağız. Title ingilizce olarak da başlık anlamına gelmekte.
Kod:
[COLOR="pink"]from tkinter import *
#Değişkeni atadık
pencere = Tk ( )
#Pencere başlığını ayarladık
pencere.title ("Pencere başlığı")
#Pencerenin sürekli açık kalmasını sağladık
mainloop ( )
[/COLOR]
Bunun için Tkinterin içindeki geometry metothunu kullanacağız. Penceremizi 500px , boyunu 200px yapalım.
Kod:
[COLOR="pink"]pencere.geometry ("500x100")[/COLOR]
Kod:
[COLOR="pink"]pencere.geometry ("200x200+300+100")[/COLOR]
Kod:
pencere.resizable(False , True)
Pencere Boyutlarını Ve Konumunu Öğrenme
Kod:
[COLOR="pink"]from tkinter import *
#Tkinter hazinesini değişkene atayalım
pencere = Tk( )
#Pencere başlığı yapalım
pencere.title ("Pencere başlığı")
#Pencere boyutu ve konumu
pencere.geometry ("200x200+100+100")
print ("Pencere Boyutu Hesaplanıyor...")
en = pencere.winfo_width ( )
boy = pencere.winfo_height ( )
sol = pencere.winfo_x ( )
ust = pencere.winfo_y ( )
print ( "En : " + str(en) )
print ( "Boy : " + str(boy) )
print ( "Sol : " + str(sol) )
print ( "Ust : " + str(ust) )
#Pencerenin açık kalmasını sağladık
mainloop( ) [/COLOR]
from tkinter import *
Kod:
#Tkinter hazinesini değişkene atayalım
pencere = Tk( )
#Pencere başlığı yapalım
pencere.title ("Pencere başlığı")
#Pencere boyutu ve konumu
pencere.geometry ("200x200+100+100")
print ("Pencere Boyutu Hesaplanıyor...")
pencere.update( )
en = pencere.winfo_width ( )
boy = pencere.winfo_height ( )
sol = pencere.winfo_x ( )
ust = pencere.winfo_y ( )
print ( "En : " + str(en) )
print ( "Boy : " + str(boy) )
print ( "Sol : " + str(sol) )
print ( "Ust : " + str(ust) )
#Pencerenin açık kalmasını sağladık
mainloop ( )
Pencere Durumu
Bunun için state( ) kullanacağız
Kod:
[COLOR="pink"]#Normal Pencere :
pencere.state("normal")
#Tam Ekran :
pencere.state("zoomed")
#Görev Çubuğunda Gözüken Pencere :
pencere.state("iconic")
#Hiç Gözükmeyen Pencere :
pencere.state("withdrawn")[/COLOR]
Özellikler için wm_attributes( ) kullanacağız. İngilizce attributes "özellikler" anlamına gelir.
>> Saydam Pencere
Saydamlaştırmak için -alpha komutunu kullancağız. Değerlerin yazımı "%50 ise 0.5 e tekabul eder , %30 sa 0.3 e tekabul eder.
Kod:
#Saydamlık %50 ayarlıyoruz
pencere.wm_attributes("-alpha", 0.5)
>> Her Zaman Üstte Olan Pencere
Bu özelliği -topmost özelliği ile yapacağız
Kod:
pencere.wm_attributes("-topmost", 1)
>>Tam Ekran Pencere
Bu özelliği yapmak için -fullscreen komutun kullanacağız.
Kod:
pencere.wm_attributes ("-fullscreen", 1)
Ekran Çözünürlüğünü Bulma
Kod:
from tkinter import *
#Tkinteri değişkene atadık
pencere = Tk ( )
print("Genişlik : " + str(pencere.winfo_screenwidth( ) )
print("Yükseklik : " + str(pencere.winfo_screenheight( ) )
mainloop ( )
Çıktısı :
Genişlik : 2560
Yükseklik : 1440
Fare İmlecinin Konumunu Bulma
Kod:
[COLOR="Pink"]from tkinter import *
pencere = Tk ( )
print ("Sol : " + str(pencere.winfo_pointerx( ) )
print ("Üst : " + str(pencere.winfo_pointery( ) )
Çıktısı :
Sol : 542
Üst : 1256 [/COLOR]
Pencerenin üstünde bulunan pencere başlığı kısmını overrideredirect ( ) fonksiyonu ile kaldırabiliriz
Kod:
[COLOR="pink"]from tkinter import *
pencere = Tk( )
pencere.title("Pencere başlığı")
pencere.geometry("200x200+100+100)
pencere.overrideredirect(1)[/COLOR]
Aynı Programda Birden Fazla Pencere Oluşturma
Kod:
[COLOR="pink"]from tkinter import *
pencere = Tk( )
pencere.title("Başlık 1")
pencere.geometry("200x200+100+100")
pencere2 = Tk( )
pencere2.title("Başlık 2")
pencere2.geometry("200x200+100+100)
mainloop( ) [/COLOR]
Pencere Elemanları
>>Label (Etiket Ekleme)
Label kelimesi ingilizce etiket anlamına gelir. Boş pencerede test edelim
>>Merhaba Dünya Yazısı
Kod:
[COLOR="pink"]Penceremize Merhaba Dünya yazalım.
pencere = Tk( )
pencere.title("Başlıkk")
pencere.geometry("200x200+100+100")
yazi = Label (text = "HELLO WORLD")
yazi.pack( )
mainloop( )
Not= Text metin özelliğidir[/COLOR]
Yazı Rengi
Kod:
yazi = Label (
text = "Hello World",
fg = "red"
)
Yazı Arka Plan Rengi
Kod:
yazı = Label (
text = "Hello World",
fg = "#cccccc",
bg = "#ae0000"
)
Boyutunu ayarlamak için 2 parametremiz var , width ( genişlik ) ve height (yükseklik)
Kod:
[COLOR="pink"]yazi = Label (
text = "Hello World",
fg = "#cccccc" ,
bg = "#ae0000",
width = 10,
height = 10
)[/COLOR]
Bunun için padx (Sağ-Sol Boşluk), pady(Üst-Alt Boşluğu)
Kod:
yazı = Label (
text = "Hello World",
fg = "#cccccc",
bg = "#ae0000,
padx = 50 ,
pady = 30
)
Bunları Label ( ) özelliği "font" ile ayarlayabiliriz.
Kod:
[COLOR="pink"]yazi = Label (
text = "Hello World",
fg = "#cccccc",
bg = "#ae0000",
padx = 50,
pady = 30,
font = ("Open Sans", "30", "bold")[/COLOR]
Yazı Genişliği
Kod:
yazi = Label (
text = "Hello World Hello World Hello World Hello World Hello World",
fg = "#cccccc",
bg = "#ae0000",
padx = 50 ,
pady = 30,
wraplength = 100
)
Sola Yaslama
Kod:
[COLOR="pink"]yazi = Label (
text = "Bir zamanlar bir adam vardı, karısı ölmüştü; bir de kocası ölen bir kadın; bu kadının da adamın da bir kızı vardı. Her iki kız tanışıyorlardı, beraber dolaşıyor ve sonrasında da bu kadının evine geliyorlardı",
fg = "#cccccc",
bg = "#ae0000",
padx = 50,
pady = 30,
wraplength = 180 ,
justify = "left"
)[/COLOR]
Kod:
yazi = Label (
text = "Bir zamanlar bir adam vardı, karısı ölmüştü; bir de kocası ölen bir kadın; bu kadının da adamın da bir kızı vardı. Her iki kız tanışıyorlardı, beraber dolaşıyor ve sonrasında da bu kadının evine geliyorlardı",
fg = "#cccccc",
bg = "#ae0000",
padx = 50,
pady = 30,
wraplength = 180 ,
justify = "right"
)
Ortaya Yaslama
Kod:
yazi = Label (
text = "Bir zamanlar bir adam vardı, karısı ölmüştü; bir de kocası ölen bir kadın; bu kadının da adamın da bir kızı vardı. Her iki kız tanışıyorlardı, beraber dolaşıyor ve sonrasında da bu kadının evine geliyorlardı",
fg = "#cccccc",
bg = "#ae0000",
padx = 50,
pady = 30,
wraplength = 180 ,
justify = "center"
)
Yazının genişliğini ve yüksekliğini çoğalttığımızda yazı standart olarak ortada gözüküyor. Bu yazıyı sağa-sola yukarı-aşağı taşımamız için "anchor" parametresini kullanıyoruz.
Hangi harf neye tekabul eder :
Kod:
n = Yukarı
s = Aşağı
e = Sağ
w = Sol
ne = Yukarı - Sağ
nw = Yukarı - Sol
se = Aşağı - Sağ
sw = Aşağı - Sol
center = orta
Kod:
from tkinter import *
aaaa
pencere = Tk ( )
pencere.title("Pencere Başlığı")
pencere.geometry("200x200+100+100")
yazi = Label (
text = "Python",
fg = "#cccccc",
bg = "#ae0000",
width = 50,
height = 50,
anchor = "ne"
)
yazi.pack( )
mainloop( )
Bu işlemi cusor parametresi ile yapacağız .
Kod:
[COLOR="Pink"]İmleç listesi :
x_cursor , lr_angle , arrow , man , based_arrow_down , middlebutton , based_arrow_up , mouse , boat , pencil , bogosity , prate , plus , bottom_left_corner , buttom_right_corner , question_arrow , bottom_side , right_ptr, bottom_tee , right_side , box_spiral , right_tee , center_ptr ,rightbutton , circle , rtl_logo , clock , sailboat ,coffee_mug , sb_down_arrow , cross , cross_reverse , crosshair , diamond_cross , dot , dotbox, double_arrow , double_arrow , draft_large , draft_small , draped_box , excahnge.
[/COLOR]
Kod:
[COLOR="pink"]yazi = Label (
text = "Python",
fg = "#cccccc",
bg = "#ae0000",
width = 50,
height = 50,
cursor = "cross"
)[/COLOR]
Resim Ekleme
Kod:
[COLOR="pink"]from tkinter import *
pencere = Tk ( )
pencere.title("başlıkk")
pencere.geometry("200x200+100+100")
resim = PhotoImage (file = "gif.gif"
yazi = Label (İmage = resim)
yazi.pack( )
mainloop( )[/COLOR]
Kod:
top = Üst
bottom = Alt
left = Sol
right = Sağ
center = Orta
Kod:
[COLOR="pink"]from tkinter import *
pencere = Tk ( )
pencere.title("başlıkk")
pencere.geometry("200x200+100+100")
resim = PhotoImage (file = "gif.gif")
yazi = Label(
image = resim,
text = "Test Yazı",
compound = "left",
)
yazi.pack( )
mainloop( )[/COLOR]
Label özelliklerinin hepsinde geçerlidir. "command" parametresini kullanır. Buton Yapalım :
Kod:
[COLOR="pink"]from tkinter import *
pencere = Tk( )
pencere.title("Pencere 1")
pencere.geometry("200x200+100+100")
def mesaj_yaz( ) :
print ("Butona basıldı")
buton = Button (
text = "Mesaj",
command = mesaj_yaz
)
buton.pack ( )
mainloop( ) [/COLOR]
Kod:
[COLOR="pink"]from tkinter import *
pencere = Tk( )
pencere.title("Pencere 1")
pencere.geometry("200x200+100+100")
def yazi_degistir( ) :
etiket["text"] = "Merhaba Dünya !"
etiket = Label (text = "Hello World !")
etiket.pack( )
buton = Button(
text = "Mesaj",
command = yazi_degistir
)
buton.pack( )
mainloop( )
[/COLOR]
Kod:
[COLOR="Pink"]from tkinter import *
pencere = Tk( )
pencere.title("Pencere 1")
pencere.geometry("200x200+100+100")
def yazi_degistir( ) :
etiket["text"] = "Merhaba Dünya !"
etiket = Label (text = "Hello World !")
etiket.pack( )
buton = Button(
text = "Mesaj",
command = yazi_degistir,
state = "disabled",
)
#pasif buton yazı rengi
disabledforeground = "red" [/COLOR]
invoke( ) fonksiyonunu kullanacağız.
Kod:
[COLOR="pink"]from tkinter import *
pencere = Tk( )
pencere.title("Pencere 1")
pencere.geometry("200x200+100+100")
def yazi_degistir( ) :
etiket["text"] = "Merhaba Dünya !"
etiket = Label (text = "Hello World !")
etiket.pack( )
buton = Button(
text = "Mesaj",
command = yazi_degistir
)
buton.pack( )
buton.invoke( )
buton.pack( )
mainloop( )
[/COLOR]
Kod:
from tkinter import *
pencere = Tk( )
pencere.title("Pencere 1")
pencere.geometry("200x200+100+100")
def kapat ( ) :
quit( )
buton = Button
text = "Kapat",
command = kapat,
)
buton.pack ( )
mainloop ( )
Sonuna Geldik Umarım Öğretici Olmuştur Bildiğim Her Şeyi Yansıtmaya Çalıştım
Son düzenleme: