Ders-10: Tkinter place Geometry Yöneticisi

Tkinter place Geometry Yöneticisi

Bu geometri yöneticisi pack ve grid geometry yöneticilerine göre daha hassas araç yerleşimi yapmamızı sağlar. Biraz uğraştırıcı zaman alıcı olsa da pencere öğelerimizi araçlarımızı pencereye daha düzenli yerleştirebilir. Şimdi bu yöneticinin çalışma şekline bir göz atalım.

Height: Aracın piksel cinsinden yüksekliği.
Width: Aracın piksel cinsinden genişliği.

Relheight ( )

Relheight: Aracın yüksekliği fakat o andaki pencere yüksekliğinin oranında. Örnek olarak relheigth=0.5 ise aracın yüksekliği pencrenin yarısı kadardır. Burda dikkat edilmesi gereken nokta pencerenin boyutunu değiştirdiğimizde otomatik olarak da bu aracın boyutu relheight oranında küçülür yada büyür. Parantez içerisine 0 ile 1 arası ondalık bir değer gelmelidir.

btn3 = Button(root, text="BTN3")
btn3.place(relheight=0.6)

btn3 butonu açılan pencerenin yüksekliğinin 0.6 oranı kadar yüksekliğe sahip olacaktır. Pencere boyutu değişirse bu orana göre butonun yüksekliği de değişecektir.

Relwidth ( )

Relwidth: Aracın genişliği fakat o andaki pencere genişliğinin oranında. Örnek olarak relwidth =0.5 ise aracın genişliği pencrenin genişliğinin yarısı kadardır. Burada dikkat edilmesi gereken nokta pencerenin boyutunu değiştirdiğimizde otomatik olarak da bu aracın boyutu relwidth oranında küçülür yada büyür. Parantez içerisine 0 ile 1 arası ondalık bir değer gelmelidir.

btn4= Button(root, text="BTN4")
btn4.place(relwidth=0.2)

relx , rely özelliği:

relx ve rely x ve y koordinatı baz alınarak aracın sol köşesinin pencereye göre nerede olacağını oranlar. Parantez içerisine yazılacak değerler pencere boyutuna göre oranlanarak aracın nereye yerleşeceği ortaya çıkar. eğer değer girilmez ise sıfır kabul edilir.

btn5=Button(root, text="BTN5")
btn5.place(relx=0.3)

btn6=Button(root, text="BTN6")
btn6.place(rely=0.7)

Yukarıdaki örnekte BTN5 butonu pencerenin x genişliği nin 0.3 katı oranın da sol tarafta oluşur. BTN6 butonu ise pencerenin y genişliğinin 0.7 katı oranında y ekseninden başlar. Pencere boyutu elle değiştirilirse bu değerler de değişeceği için butonları yerleri değişecektir. Aşağıdaki örnekte bu değerleri daha iyi anlayacaksınız.

Şimdi bir örnek:

from tkinter import *
root = Tk()
root.geometry("500x500")

btn1 = Button(root, text="BTN1")
btn1.place(height=50, x=200, y=200)

btn2= Button(root, text="BTN2")
btn2.place(width=60, x=300, y=300)

btn3 = Button(root, text="BTN3")
btn3.place(relheight=0.6)

btn4= Button(root, text="BTN4")
btn4.place(relwidth=0.2)

btn5=Button(root, text="BTN5")
btn5.place(relx=0.3)

btn6=Button(root, text="BTN6")
btn6.place(rely=0.7)

mainloop()

Bu örnekte tkinter modülü from tkinter import * komutu ile import edildiği için as takısı almaz ve hiç bir aracın önüne tk. konulmamıştır. Bu şekilde de yapabilirsiniz. Fakat bu yöntem bellekte çok yer kaplar ve sıkıntı doğurabilir. Şimdi koda geçelim Buton ismi üzerinden ilerleyeceğiz.

BTN1 ve BTN2 butonları normal x ve y koordinatında tanımlanmıştır. Pencere boyutlandırılınca yerleri değişmeyecektir.

BTN 3 ün 0,0 kordinatlarında başlayacak çünkü değer girilmemiş. Fakat relheigth girilmiş ve yüksekliği o andaki pencere yüksekliğinin 0.3 katı kadar olacaktır. BTN 4 de aynı mantıkla hareket etmektedir.

BTN5 in sadece relx değeri girilmiş. O halde y si o olacak ve pencerenin x eksenin yaklaşık 0.3 oranında sağından başlayacaktır.

BTN6 ise rely 0.7 girilmiş. Eğer 1 olsaydı pencerenin y uzunluğunda bir buton olurdu yani pencereyi y eksenin de doldururdu. 0.7 olduğu için pencerenin y uzunluğunun 0.7 katı kadar bir uzunluğa sahip olacak ve x 0 dan başlayacak.

Şimdi aşağıdaki ekran görüntüsünü inceleyelim.

Tkinter place Geometry Yöneticisi

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir