1. sayfa (Toplam 1 sayfa)

python customtkinterde uygulamanın boyutunu dinamik hale getirmek

Gönderilme zamanı: 11 Mar 2025 18:02
gönderen medet
merhaba arkadaşlar python customtkinter ile kendime basit bir uygulama yazdım fakat bu uygulamayı okulda akıllı tahtada açmayı denediğimde pencere boyutunda pek bir sıkıntı yokta fakat uygulamanın içindeki nesneler cok kucuk kalmıs, aralarındaki aralık baya artmıştı ben bu uygulamamı nasıl dinamik hale getirebilirim ekran boyutuna gore buton, resim vs. boyutlandırabilirim ? kodu atmak isterdim ama cok uzun eger gerekirse atarım teşşekürler

Re: python customtkinterde uygulamanın boyutunu dinamik hale getirmek

Gönderilme zamanı: 11 Mar 2025 22:03
gönderen trasmus
Pencere boyutuna göre butonların oranını ayarlayabilirsin.
Şu adres senin işini görecek bilgi ve örnek bir çalışma içeriyor: Tkinter place Geometry Yöneticisi

Re: python customtkinterde uygulamanın boyutunu dinamik hale getirmek

Gönderilme zamanı: 15 Mar 2025 19:02
gönderen TRWE_2012
medet yazdı: 11 Mar 2025 18:02 merhaba arkadaşlar python customtkinter ile kendime basit bir uygulama yazdım fakat bu uygulamayı okulda akıllı tahtada açmayı denediğimde pencere boyutunda pek bir sıkıntı yokta fakat uygulamanın içindeki nesneler cok kucuk kalmıs, aralarındaki aralık baya artmıştı ben bu uygulamamı nasıl dinamik hale getirebilirim ekran boyutuna gore buton, resim vs. boyutlandırabilirim ? kodu atmak isterdim ama cok uzun eger gerekirse atarım teşşekürler

Merhaba!

Python'da customtkinter kullanarak yaptığın uygulamanın içindeki nesnelerin ekran boyutuna göre dinamik olarak boyutlandırılması için birkaç yöntem deneyebilirsin.

1. Grid veya Pack Yöntemleri ile Dinamik Yerleşim
veya yöntemlerini kullanarak, widget'ların boyutlarını ve aralıklarını dinamik olarak ayarlayabilirsin.

Örneğin, kullanıyorsan,

Kod: Tümünü seç

sticky
parametresi ile widget'ların genişliğini ve yüksekliğini ayarlayabilirsin.

Örnek:

Kod: Tümünü seç

import customtkinter as ctk

def resize_widgets():
    width = root.winfo_width()
    height = root.winfo_height()
    
    # Örnek: Buton boyutunu ekran boyutuna göre ayarlama
    button_width = int(width * 0.2)  # Ekranın %20'si
    button_height = int(height * 0.1)  # Ekranın %10'u
    button.config(width=button_width, height=button_height)

root = ctk.CTk()
root.geometry("800x600")

button = ctk.CTkButton(root, text="Dinamik Buton")
button.pack(pady=20)

# Ekran boyutu değiştiğinde widget'ları yeniden boyutlandır
root.bind("<Configure>", lambda e: resize_widgets())

root.mainloop()
2. Font Boyutunu Dinamik Olarak Ayarlama

Font boyutunu da ekran boyutuna göre ayarlamak isteyebilirsin. Aşağıdaki örnekte, ekran boyutuna göre font boyutunu dinamik olarak ayarlıyoruz:

Örnek:

Kod: Tümünü seç

def resize_font():
    width = root.winfo_width()
    height = root.winfo_height()
    
    # Font boyutunu ekran boyutuna göre ayarlama
    font_size = int(min(width, height) * 0.02)  # Ekranın %2'si
    label.config(font=("Arial", font_size))

label = ctk.CTkLabel(root, text="Dinamik Font")
label.pack(pady=20)

# Ekran boyutu değiştiğinde font'u yeniden boyutlandır
root.bind("<Configure>", lambda e: resize_font())
3. Frame Kullanarak Düzenleme

Uygulamanızda

Kod: Tümünü seç

Frame
kullanarak, widget'larını gruplandırabilir ve bu grupların boyutlarını dinamik olarak ayarlayabilirsin. Bu, daha düzenli bir görünüm sağlar.

Örnek:

Kod: Tümünü seç

frame = ctk.CTkFrame(root)
frame.pack(fill="both", expand=True)

# Frame içindeki widget'ları dinamik olarak boyutlandırma
def resize_frame_widgets():
    for widget in frame.winfo_children():
        widget.config(width=frame.winfo_width() // 2)  # Frame genişliğinin yarısı

frame.bind("<Configure>", lambda e: resize_frame_widgets())
4. Ekran Boyutunu Kullanarak Orantılı Boyutlandırma

Ekran boyutunu kullanarak, widget'larının boyutlarını orantılı olarak ayarlayabilirsin. Bu, uygulamanın farklı ekran boyutlarında daha iyi görünmesini sağlar.

Özetle anlatmak istediğimi özetlersek;

Bu yöntemleri kullanarak, customtkinter ile geliştirdiğin uygulamanın içindeki nesneleri dinamik hale getirebilir ve ekran boyutuna göre boyutlandırabilirsin.

İyi çalışmalar!