Elinize sağlık hocam.
Tkinter-Python Nasıl Kullanılır Bahsetmeye Çalıştım Umarım Öğretici Olur..
TkinterKod:[SIZE="3"][COLOR="white"][B]Öğreneceğimiz Konular : [/COLOR][/I][/SIZE] [SIZE=6][I][COLOR=White]>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
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.Kod:[COLOR="pink"]from tkinter import * [/COLOR] [COLOR=White]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.
Pencere Boyutları ve KonumuKod:[COLOR="pink"]from tkinter import * [/COLOR] [COLOR=White] #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.
Şimdi de penceremizi soldan 300px , yukarıdan 100px uzaklaştıralım (Pencere boyutunu 200x200 olarak alıyorum)Kod:[COLOR="pink"]pencere.geometry ("500x100")[/COLOR]
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ğımKod:[COLOR="pink"]pencere.geometry ("200x200+300+100")[/COLOR]
Kod:pencere.resizable(False , True)
Pencere Boyutlarını Ve Konumunu Öğrenme
Karşımıza çıkıcak değerlerin hiç bir manası yok ama birde pencere.update ( ) yazarsak...Kod:[COLOR="pink"]from tkinter import * [/COLOR] [COLOR=White] #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 *
Şimdi istediğimiz değerleri bize gösterecektir..Kod:#Tkinter hazinesini değişkene atayalım [/COLOR][/COLOR] [COLOR=White][COLOR=pink]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
Pencere ÖzellikleriKod:[COLOR="pink"]#Normal Pencere :[/COLOR] [COLOR=White]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 [/COLOR][/COLOR] [COLOR=White][COLOR=Cyan]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 * [/COLOR][/COLOR] [COLOR=White][COLOR=Pink] #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
Pencere Çubuğunu KaldırmaKod:[COLOR="Pink"]from tkinter import * [/COLOR] [COLOR=White] 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 * [/COLOR] [COLOR=White]pencere = Tk( ) pencere.title("Pencere başlığı") pencere.geometry("200x200+100+100) pencere.overrideredirect(1)[/COLOR]
Aynı Programda Birden Fazla Pencere Oluşturma
Böyle daha da fazla yapabilir boyutlarını değiştirebilirsiniz.Kod:[COLOR="pink"]from tkinter import * [/COLOR] [COLOR=White] 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.[/COLOR] [COLOR=White]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
Göründüğü gibi değişecektir.Kod:yazi = Label ([/COLOR][/COLOR] [COLOR=White][COLOR=Pink] text = "Hello World", fg = "red" )
Yazı Arka Plan Rengi
Yazı Alanının BoyutuKod:yazı = Label ([/COLOR][/COLOR] [COLOR=White][COLOR=Pink] text = "Hello World", fg = "#cccccc", bg = "#ae0000" )
Boyutunu ayarlamak için 2 parametremiz var , width ( genişlik ) ve height (yükseklik)
Yazı İç BoşluğuKod:[COLOR="pink"]yazi = Label ([/COLOR] [COLOR=White] 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)
Yazı Tipi AyarlarıKod:yazı = Label ([/COLOR][/COLOR] [COLOR=White][COLOR=Pink] text = "Hello World", fg = "#cccccc", bg = "#ae0000, padx = 50 , pady = 30 )
Bunları Label ( ) özelliği "font" ile ayarlayabiliriz.
Kod:[COLOR="pink"]yazi = Label ([/COLOR] [COLOR=White] text = "Hello World", fg = "#cccccc", bg = "#ae0000", padx = 50, pady = 30, font = ("Open Sans", "30", "bold")[/COLOR]
Yazı Genişliği
Yazıyı YaslamaKod:yazi = Label ([/COLOR][/COLOR] [COLOR=White][COLOR=Pink] text = "Hello World Hello World Hello World Hello World Hello World", fg = "#cccccc", bg = "#ae0000", padx = 50 , pady = 30, wraplength = 100 )
Sola Yaslama
Sağa YaslamaKod:[COLOR="pink"]yazi = Label ([/COLOR] [COLOR=White] 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 ([/COLOR][/COLOR] [COLOR=White][COLOR=pink] 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
Yazının Kendi İçinde KonumuKod:yazi = Label ([/COLOR][/COLOR] [COLOR=White][COLOR=pink] 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 :
Örnek Olarak Yukarı - Sağ YapalımKod:n = Yukarı [/COLOR][/COLOR] [COLOR=White][COLOR=Magenta]s = Aşağı e = Sağ w = Sol ne = Yukarı - Sağ nw = Yukarı - Sol se = Aşağı - Sağ sw = Aşağı - Sol center = orta
Label Üzerinde Gelindiğinde Fare İmleci DeğiştirmeKod:from tkinter import *[/COLOR][/COLOR] [COLOR=White][COLOR=Pink] 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 .
Uygulamak için :Kod:[COLOR="Pink"]İmleç listesi :[/COLOR] [COLOR=White]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 ( [/COLOR] [COLOR=White] text = "Python", fg = "#cccccc", bg = "#ae0000", width = 50, height = 50, cursor = "cross" )[/COLOR]
Resim Ekleme
Gif dosyasının ek olarak yazılacak cümlenin veya kelimenin yeri değişebilir :Kod:[COLOR="pink"]from tkinter import * [/COLOR] [COLOR=White]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 [/COLOR][/COLOR] [COLOR=White][COLOR=pink]bottom = Alt left = Sol right = Sağ center = Orta
ButtonKod:[COLOR="pink"]from tkinter import * [/COLOR] [COLOR=White]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 :
Butona Basınca Yazı DeğiştirmekKod:[COLOR="pink"]from tkinter import * [/COLOR] [COLOR=White] 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]
Pasif ButonKod:[COLOR="pink"]from tkinter import * [/COLOR] [COLOR=White] 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]
Yazılım İle Butona BasmaKod:[COLOR="Pink"]from tkinter import * [/COLOR] [COLOR=White] 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.
Buton İle Program KapatmakKod:[COLOR="pink"]from tkinter import * [/COLOR] [COLOR=White] 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 * [/COLOR][/COLOR] [COLOR=White][COLOR=pink] 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
Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.