Kullanıcı sorgucu Oluşturulma : 26 Nisan, 2023 Kullanıcı #1 Paylaş Oluşturulma : 26 Nisan, 2023 Tkinter-Python Nasıl Kullanılır Bahsetmeye Çalıştım Umarım Öğretici Olur.. 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] 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 : 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] 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. 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] Pencere Boyutları ve Konumu Bunun için Tkinterin içindeki geometry metothunu kullanacağız. Penceremizi 500px , boyunu 200px yapalım. Kod: [COLOR="pink"]pencere.geometry ("500x100")[/COLOR] Şimdi de penceremizi soldan 300px , yukarıdan 100px uzaklaştıralım (Pencere boyutunu 200x200 olarak alıyorum) Kod: [COLOR="pink"]pencere.geometry ("200x200+300+100")[/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ğım 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] Karşımıza çıkıcak değerlerin hiç bir manası yok ama birde pencere.update ( ) yazarsak... 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 ( ) Şimdi istediğimiz değerleri bize gösterecektir.. 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] 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. 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] Pencere Çubuğunu Kaldırma 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] 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ı 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" ) Göründüğü gibi değişecektir. Yazı Arka Plan Rengi Kod: yazı = Label ( text = "Hello World", fg = "#cccccc", bg = "#ae0000" ) Yazı Alanının Boyutu 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] Yazı İç Boşluğu 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 ) Yazı Tipi Ayarları 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 ) Yazıyı Yaslama 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] Sağa 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 = "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 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 : 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 Örnek Olarak Yukarı - Sağ Yapalım 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( ) Label Üzerinde Gelindiğinde Fare İmleci Değiştirme 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] Uygulamak için : 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] Gif dosyasının ek olarak yazılacak cümlenin veya kelimenin yeri değişebilir : 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] Button 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] Butona Basınca Yazı Değiştirmek 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] Pasif Buton 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] Yazılım İle Butona Basma 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] Buton İle Program Kapatmak 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 Alıntı ORTAM SANAL OLSADA HERŞEY GERÇEK Yorum bağlantısı https://weblep.com/topic/1120-tkinter-python-nas%C4%B1l-kullan%C4%B1l%C4%B1r/ Şimdi Paylaş Daha fazla paylaşma seçeneği...