Widget'leri Her Zaman Ekranın Ortasına Konumlandırmak

Merhabalar,

Oluşturduğum “İlk Kullanım” uygulaması küçük bir pencereye sahip.Ben butonlar vasıtasıyla ekrandaki widget’ları config ediyorum.Ancak yazı uzunlukları,font değişiklikleri gibi farklılıklar yüzünden her zaman koordinatları elle yazmak durumunda kalıyorum.Bende text’leri değişkenlere atadım,widget’ların text’lerini bu değişkenlere göre düzenledim.Ekranın tam ortasına gelmesi için öncelikle ekran genişliğinden text’i çıkardım (text’leri değişkenlere atamamın sebebi buydu.Çünkü label widgeti vb. componentler len ile ölçülemiyor.).Ardından çıkan sonucu 2’ye böldüm (ekranın yarısını bulmak için).Ancak şöyşe bir çıktı geliyor:

1

Ben ise “Merhabalar,adınız nedir?” sorusunun genişlik bakımından ortada olmasını istiyorum.Nasıl yapabilirim?

Kod :


from tkinter import *
import json
import sys

#Değişkenler
Font = "Verdana 10"
İsim = ""
Soyİsim = ""
Yaş = ""
Mail = ""
KurtarmaMail = ""
KurtarmaTel = ""
Tel = ""
Yazı_İçerik = "Merhabalar,adınız nedir?"
Tuş1_İçerik = ">"
Tuş2_İçerik = "<"

#Ekran
Ekran = Tk()
Ekran.title("TCMail - İlk Kullanım")
Ekran.geometry("300x275")

def İleri2():
    pass

def İleri():
    Yazı.config(text = Yazı_İçerik, font = Font)
    İleri_Tuşu.config(command = İleri2, font = Font)
    
#İsim Alma
Yazı = Label(Ekran, text = "Merhabalar,adınız nedir?", font = Font)
Girdi = Entry(Ekran, font = Font)
İleri_Tuşu = Button(Ekran, text = ">", command = İleri, font = Font)

#İşlemler
Yazı_Boyutu_Çıkartma = 300 - len(Yazı_İçerik)
Yazı_Boyutu = Yazı_Boyutu_Çıkartma / 2
print(Yazı_Boyutu)


#Paketlemeler
Yazı.place(x = Yazı_Boyutu, y = 65)
Girdi.place(x = 10, y = 100, height = 20, width = 280)
İleri_Tuşu.place(x = 130, y = 190, height = 40, width = 40)

if __name__ == "__main__":
    Ekran.mainloop()

Merhaba,

#İsim Alma yorum satırının altında, aşağıdaki gibi bir tane Frame oluşturun. Yazı ve Girdi'nin master parametresine bu Frame widgetini yazın.

#İsim Alma
cerceve = Frame(Ekran)
Yazı = Label(cerceve, text = "Merhabalar,adınız nedir?", font = Font)
Girdi = Entry(cerceve, font = Font)

Ayrıca #Paketlemeler yorum satırının altında widgetleri ekrana yerleştirirken, place metodu yerine pack metodunu kullanın.

#Paketlemeler
cerceve.pack(expand=True)
Yazı.pack()
Girdi.pack()
İleri_Tuşu.pack(expand=True)
1 Beğeni

Teşekkür ederim <3 :

2