Tkinter Penceresi
Bu eğitimde, bir Tkinter penceresinin çeşitli niteliklerini nasıl değiştireceğinizi öğreneceksiniz.
Bir pencereden oluşan basit bir programla başlayalım:
import tkinter as tk
root = tk.Tk()
root.mainloop()
Kod dili: Python ( python )
Çıktı:

Kök pencerenin varsayılan olarak bir başlığı vardır tk
. Ayrıca Küçült, Büyüt ve Kapat dahil olmak üzere üç sistem düğmesi vardır.
Kök pencerenin niteliklerini nasıl değiştireceğimizi öğrenelim.
Pencere başlığını değiştirme
Pencerenin başlığını değiştirmek için title()
şu yöntemi kullanırsınız:
window.title(new_title)
Kod dili: Python ( python )
Örneğin, aşağıdakiler kök pencerenin başlığını şu şekilde değiştirir 'Tkinter Window Demo'
:
import tkinter as tk
root = tk.Tk()
root.title('Tkinter Window Demo')
root.mainloop()
Kod dili: Python ( python )
Çıktı:

Bir pencerenin geçerli başlığını almak için title()
argümansız yöntemi kullanırsınız:
title = window.title()
Kod dili: Python ( python )
Pencere boyutunu ve konumunu değiştirme
Tkinter'da bir pencerenin ekrandaki konumu ve boyutu geometri tarafından belirlenir .
Aşağıda geometri spesifikasyonu gösterilmektedir:
widthxheight±x±y
Kod dili: Python ( python )

Bu spesifikasyonda:
width
Pencerenin piksel cinsinden genişliğidir .height
Pencerenin piksel cinsinden yüksekliğidir .x
Pencerenin yatay konumudur . Örneğin,+50
pencerenin sol kenarının ekranın sol kenarından 50 piksel uzakta olması gerektiği anlamına gelir. Ve-50
pencerenin sağ kenarının ekranın sağ kenarından 50 piksel uzakta olması gerektiği anlamına gelir.y
Pencerenin dikey konumudur . Örneğin,+50
pencerenin üst kenarının ekranın üst kısmından 50 piksel aşağıda olması gerektiği anlamına gelir. Ve-50
pencerenin alt kenarının ekranın alt kısmından 50 piksel yukarıda olması gerektiği anlamına gelir.
Bir pencerenin boyutunu ve konumunu değiştirmek için şu yöntemi kullanırsınız geometry()
:
window.geometry(new_geometry)
Kod dili: Python ( python )
Aşağıdaki örnek, pencerenin boyutunu 600x400
ve konumunu ekranın üstünden ve solundan 50 piksel olacak şekilde değiştirir:
import tkinter as tk
root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('600x400+50+50')
root.mainloop()
Kod dili: Python ( python )
Bazen pencereyi ekranda ortalamak isteyebilirsiniz. Aşağıdaki program bunun nasıl yapılacağını göstermektedir:
import tkinter as tk
root = tk.Tk()
root.title('Tkinter Window - Center')
window_width = 300
window_height = 200
# get the screen dimension
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
# find the center point
center_x = int(screen_width/2 - window_width / 2)
center_y = int(screen_height/2 - window_height / 2)
# set the position of the window to the center of the screen
root.geometry(f'{window_width}x{window_height}+{center_x}+{center_y}')
root.mainloop()
Kod dili: PHP ( php )
Nasıl çalışır.
winfo_screenwidth()
Öncelikle ve yöntemlerini kullanarak ekran genişliğini ve yüksekliğini elde edinwinfo_screenheight()
.- İkinci olarak, ekrana ve pencerenin genişliğine ve yüksekliğine göre merkez koordinatını hesaplayın.
- Son olarak, yöntemi kullanarak kök pencerenin geometrisini ayarlayın
geometry()
.
Bir pencerenin mevcut geometrisini elde etmek istiyorsanız, geometry()
herhangi bir argüman sunmadan yöntemi kullanabilirsiniz:
window.geometry()
Kod dili: Python ( python )
Yeniden boyutlandırma davranışı
Varsayılan olarak bir pencerenin genişliğini ve yüksekliğini yeniden boyutlandırabilirsiniz. Pencerenin yeniden boyutlandırılmasını önlemek için şu yöntemi kullanabilirsiniz resizable()
:
window.resizable(width,height)
Kod dili: Python ( python )
Yöntemin resizable()
pencerenin genişliğinin ve yüksekliğinin yeniden boyutlandırılıp boyutlandırılamayacağını belirten iki parametresi vardır.
Aşağıda pencerenin sabit boyutta nasıl oluşturulacağı gösterilmektedir:
import tkinter as tk
root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('600x400+50+50')
root.resizable(False, False)
root.mainloop()
Çıktı:

Tam Ekran Örneği
root = Tkinter.Tk()
root.title('Drone Polis')
EkranEn = root.winfo_screenwidth()
EkranBoy = root.winfo_screenheight()
#root.geometry('300x200+50+50')
root.geometry(f'{EkranEn}x{EkranBoy}+0+0')
root.resizable(False, False)
#root.iconbitmap('./assets/pythontutorial.ico')
root.mainloop()
minsize()
Bir pencere yeniden boyutlandırıldığında, minimum ve maksimum boyutları ve yöntemlerini kullanarak belirleyebilirsiniz maxsize()
:
window.minsize(min_width, min_height)
window.maxsize(min_height, max_height)
Kod dili: Python ( python )
Şeffaflık
Tkinter, alfa kanalını 0,0 (tamamen şeffaf) ila 1,0 (tamamen opak) arasında ayarlayarak bir pencerenin şeffaflığını belirlemenize olanak tanır:
window.attributes('-alpha',0.5)
Kod dili: Python ( python )
Aşağıdaki örnekte %50 şeffaf olan bir pencere gösterilmektedir:
import tkinter as tk
root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('600x400+50+50')
root.resizable(False, False)
root.attributes('-alpha', 0.5)
root.mainloop()
Kod dili: Python ( python )
Çıktı:

Pencere istifleme sırası
Pencere yığını sırası, ekrana yerleştirilen pencerelerin aşağıdan yukarıya doğru sırasını ifade eder. Daha yakın olan pencere yığının üstündedir ve alttaki pencereyle örtüşür.
-topmost
Bir pencerenin her zaman yığınlama sırasının en üstünde olmasını sağlamak için bu özelliği şu şekilde kullanabilirsiniz :
window.attributes('-topmost', 1)
Kod dili: Python ( python )
lift()
Bir pencereyi yığının yukarısına veya aşağısına taşımak için ve yöntemlerini kullanabilirsiniz lower()
:
window.lift()
window.lift(another_window)
window.lower()
window.lower(another_window)
Kod dili: Python ( python )
Aşağıdaki örnek, kök pencereyi diğer tüm pencerelerin üstüne yerleştirir. Başka bir deyişle, kök pencere her zaman en üsttedir:
import tkinter as tk
root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('300x200+50+50')
root.resizable(0, 0)
root.attributes('-topmost', 1)
root.mainloop()
Kod dili: Python ( python )
Varsayılan simgeyi değiştirme
Tkinter penceresi varsayılan bir simge görüntüler. Bu varsayılan simgeyi değiştirmek için şu adımları izleyin:
- formatında bir resim hazırlayın
.ico
. Görüntünüzpng
veya gibi başka formatlardaysajpg
onu formata dönüştürebilirsiniz.ico
. Bunu oldukça kolay bir şekilde yapmanızı sağlayan birçok çevrimiçi araç vardır. - Simgeyi programdan erişilebilen bir klasöre yerleştirin.
iconbitmap()
Pencere nesnesinin yöntemini çağırın .
Aşağıdaki program, varsayılan simgenin yenisiyle nasıl değiştirileceğini gösterir:
import tkinter as tk
root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('300x200+50+50')
root.resizable(False, False)
root.iconbitmap('./assets/pythontutorial.ico')
root.mainloop()
Çıktı:

Yukarıdaki simgeyi kullanmak istiyorsanız bilgisayarınıza indirebilirsiniz:
Özet
title()
Pencerenin başlığını değiştirmek için yöntemi kullanın .geometry()
Pencerenin boyutunu ve konumunu değiştirmek için yöntemi kullanın .resizable()
Bir pencerenin yatay olarak mı yoksa dikey olarak mı yeniden boyutlandırılabileceğini belirtmek için yöntemi kullanın .window.attributes('-alpha',0.5)
Pencerenin şeffaflığını ayarlamak için öğesini kullanın .window.attributes('-topmost', 1)
Pencereyi her zaman üstte yapmak için öğesini kullanın .- Pencereyi, pencere yığınlama sırasına göre yukarı ve aşağı taşımak için kullanın
lift()
ve yöntemler.lower()
iconbitmap()
Pencerenin varsayılan simgesini değiştirmek için yöntemi kullanın .
Kaynak