Tkinter-Python Nasıl Kullanılır Bahsetmeye Çalıştım Umarım Öğretici Olur..
Kod:
İçerik :
>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
Not: (>) İle gösterilen başlık (>>) ile gösterilen başlık içeriğidir.
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:
sudo apt-get install python3-tk
Pencere oluşturma
Her şeyi tasarlamak için ik pencere oluşturmamız lazım
Kod:
from tkinter import *
pencere = Tk ( )
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:
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 ( )
Pencere Boyutları ve Konumu
Bunun için Tkinterin içindeki geometry metothunu kullanacağız. Penceremizi 500px , boyunu 200px yapalım.
Kod:
pencere.geometry ("500x100")
Şimdi de penceremizi soldan 300px , yukarıdan 100px uzaklaştıralım (Pencere boyutunu 200x200 olarak alıyorum)
Kod:
pencere.geometry ("200x200+300+100")
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:
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( )
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:
#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")
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"
#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
pencere.wm_attributes("-topmost", 1)
>>Tam Ekran Pencere
Bu özelliği yapmak için -fullscreen komutun kullanacağız.
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:
from tkinter import *
pencere = Tk ( )
print ("Sol : " + str(pencere.winfo_pointerx( ) )
print ("Üst : " + str(pencere.winfo_pointery( ) )
Çıktısı :
Sol : 542
Üst : 1256
Pencere Çubuğunu Kaldırma
Pencerenin üstünde bulunan pencere başlığı kısmını overrideredirect ( ) fonksiyonu ile kaldırabiliriz
Kod:
from tkinter import *
pencere = Tk( )
pencere.title("Pencere başlığı")
pencere.geometry("200x200+100+100)
pencere.overrideredirect(1)
Aynı Programda Birden Fazla Pencere Oluşturma
Kod:
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( )
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:
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
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:
yazi = Label (
text = "Hello World",
fg = "#cccccc" ,
bg = "#ae0000",
width = 10,
height = 10
)
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:
yazi = Label (
text = "Hello World",
fg = "#cccccc",
bg = "#ae0000",
padx = 50,
pady = 30,
font = ("Open Sans", "30", "bold")
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:
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"
)
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:
İ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.
Uygulamak için :
Kod:
yazi = Label (
text = "Python",
fg = "#cccccc",
bg = "#ae0000",
width = 50,
height = 50,
cursor = "cross"
)
Resim Ekleme
Kod:
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( )
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:
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( )
Button
Label özelliklerinin hepsinde geçerlidir. "command" parametresini kullanır. Buton Yapalım :
Kod:
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( )
Butona Basınca Yazı Değiştirmek
Kod:
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( )
Pasif Buton
Kod:
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"
Yazılım İle Butona Basma
invoke( ) fonksiyonunu kullanacağız.
Kod:
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( )
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
Python-Tkinter(Görsel Programlama)Nasıl Kullanılır ?
Python0 Mesaj
●205 Görüntüleme
- ReadBull.net
- Programlama ve Yazılım
- Server-Side Programlama
- Python
- Python-Tkinter(Görsel Programlama)Nasıl Kullanılır ?