2016-04-13 46 views
0

Pekala, düzeltmeyi başarabileceğim bir sorun yaşadım, ama neden yaptığımı anlamıyorum ve kimsenin bana açıklayabileceğini merak ettim mi? sınıf Düğmeler: Ben Tkinter düğmeleri oluşturmak için bir sınıf yapılan bu kullandığım koduGarip t düğmesi düğmesi davranışı?

#Takes input for location values of button and assigns them to variable 
def __init__(self, letter, column, row): 
    self.letter = letter 
    self.column = column 
    self.row = row 

#Function to create and display each button using arguments given 
def create(self): 
    self.tkbutton = tk.Button(window, text=self.letter, height = 1, width = 1, bg = colour, font=FONT, 
        command=lambda : check(self.letter)) 
    self.tkbutton.place(relx=self.column, rely=self.row) 

Ben boyutlarını ayarlamak çalıştığımda ben got garip davranışlar. Yükseklikleri almak için widget.winfo_height() kullandım ve daha sonra en büyük düğmenin genişliği için kullanabildim, böylece tüm düğmeler için kullanabildim. Daha sonra standart düğme konstrüksiyonundaki yükseklik ve genişlik değerini bu değerlere ayarlıyorum, ancak yaptığım zaman masif, farklı büyüklükte ve ekranın kenarından çıkıyorlardı. Yükseklik ve genişlik değerlerini 1 olarak girmek, onları aynı büyüklükte yapmış gibi görünüyor, bu yüzden neden böyle olduğunu açıklayabilir mi?

Python 3

sayesinde piksel

cevap

0

winfo_height döner değerler. Düğmeler ve etiketler için height seçeneği, değerleri veya etiketleri yalnızca bir görüntü içermedikçe, değerleri ortalama boyutlu karakterlerin sayısı olarak değerlendirir.

place kullanmak yerine, her bir widget'ın tam olarak aynı boyutta olduğundan emin olmak için grid uygun seçeneklerle kullanabilirsiniz. GUI düzenlerken place nadiren doğru seçimdir. Tkinter, boyutları ve pozisyonları hesaplamada çok iyidir.

+0

Teşekkürler, bu mükemmel –