Yazı boyutunu değiştiremiyorum

import tkinter
screen = tkinter.Tk()
Label1 = tkinter.Label(master=screen,text="selam dünya")
Label1.place(relx=0.10, rely=0.60, relwidth=0.60, relheight=0.10)
def yazıboyutudegiştir():
    width = screen.winfo_width()
    height = screen.winfo_height()
    yeniboyut = (width+height)/30
    Label1.config(font=str(yeniboyut))
screen.bind_all("<Configure>", lambda event: yazıboyutudegiştir())
screen.mainloop()

merhaba bu koddaki amacım ekran boyutu büyüdügünde ekrandaki yazılarında büyümesini sağlamak fakat ekranı büyüttüğümde yazılar büyümüyor sebebi nedir.


import tkinter
screen = tkinter.Tk()
Label1 = tkinter.Label(master=screen,text="selam dünya")
Label1.place(relx=0.10, rely=0.60, relwidth=0.60, relheight=0.10)
def yazıboyutudegiştir(event):
    width = screen.winfo_width()
    height = screen.winfo_height()
    yeniboyut = (width+height)/30
    Label1.config(font=(".", int(yeniboyut)))
screen.bind_all("<Configure>", yazıboyutudegiştir)
screen.mainloop()


2 Beğeni

import tkinter
screen = tkinter.Tk()
Label1 = tkinter.Label(master=screen,text=“selam dünya”,font="<yazı tipi> 13")
Label1.place(relx=0.10, rely=0.60, relwidth=0.60, relheight=0.10)
def yazıboyutudegiştir():
width = screen.winfo_width()
height = screen.winfo_height()
yeniboyut = (width+height)/30
Label1.config(font=str(yeniboyut))
screen.bind_all("", lambda event: yazıboyutudegiştir())
screen.mainloop()

Lütfen bunu dener misin?

Traceback (most recent call last):
File “”, line 3
Label1 = tkinter.Label(master=screen,text=“selam dünya”,font="<yazı tipi> 13")
^
SyntaxError: invalid character ‘“’ (U+201C)

hatalarını alıyorum.

<yazı tipi> yazdığım yere istediğin bir yazı tipini yaz 13 yazan yerede yazının boyutunu yaz

teşekkür ederim kod calışıyor fakat yazıboyutudeğiştir fonksiyonuna neden “event” diye bir arguman eklemenizin sebebi nedir?


import tkinter

screen = tkinter.Tk()
Label1 = tkinter.Label(master=screen, text="selam dünya")
Label1.place(relx=0.10, rely=0.60, relwidth=0.60, relheight=0.10)


def yaziboyutudegistir(event):
    width = screen.winfo_width()
    height = screen.winfo_height()
    yeniboyut = (width+height)/30
    Label1.config(font=(".", int(yeniboyut)))


screen.bind_all("<Configure>", lambda event: yaziboyutudegistir(event))
screen.mainloop()

bind olayları event oluyor. PEP-8 yazım düzenine göre kodunu biraz daha düzenledim. fonksiyon ve değişkenlerde türkçe isim vermemek lazım, fonksiyonlardan önce ve sonra 2 satır boşluk vermekte gerekir.
Diger bir hususta,

Label1.config(font=(".", int(yeniboyut)))

“.” şeklinde fontun adını belirtmeden sistem tarafından kullanılan fontu işaret ettim. Font belirlerken 2 şekilde de yazan oluyor font= “Arial 12 bold” yada font=("Arial, 12, “bold”) şeklinde yazılıyor. Ben 2.cisine göre yazdım.

yeniboyut = (width+height)/30

bu kısımda ise yükseklik ve genişliği toplayıp /30 a bölünce float bir sayı döndürüyor. küsüratlı bir sayı font değeri olmaz, onun yerine int e çevirdim.

Label1.config(font=(".", int(yeniboyut)))

burasını Label1.config(font=(“Arial”, int(yeniboyut))) veya hangi fontu kullanacaksan ona göre ayarlayabilirsin.

1 Beğeni