2011-05-30 36 views
9

Ben biraz tkinter ile oynuyordum ve neden "yapışkan" özniteliğinin düğmemle çalıştığı görünmüyor. Düğümümün sol üst köşeye yapışmasına neden olan NW olarak yapışkan olduğunu belirttim, ancak bir sebepten dolayı sağ üst köşeye yapışıyor. Bir fikrin neden?Düğme yapışkan özelliği nasıl ayarlanır?

from tkinter import * 
from tkinter import ttk 

def test(): 
    name = userName.get() 
    text = "Hello {0}! Pleased to meet you.".format(name) 
    greeting.set(text) 

window = Tk() 

greeting = StringVar() 
userName = StringVar() 

name = Entry(window, textvariable=userName) 
name.grid(column=1, row=1, sticky=NW) 

button = Button(window, text="greeting", command=test) 
button.grid(column=2, row=1, sticky=NW) 

label = Label(window, textvariable=greeting) 
label.grid(column=1, row=2, sticky=NW) 

#creating a rectangle 
canvas = Canvas(window) 
canvas.grid(column=1, row=2) 
#attributes are x,y coordinates of two points 
x = canvas.create_rectangle(5,5,115,115)  

mainloop() 

cevap

7

Yapışkan öznitelik, tüm ızgaraya veya tüm pencereye değil, widget'ın bulunduğu hücreye uygulanır. Yani, , hücresinin nw köşesine sabitlenmiş olan parçacığından ibarettir, yalnızca, hücrenin düğmeyle aynı genişlikten dolayı söyleyemeyeceğiniz anlamına gelir.

Düğmeyi sağ üst hücreye (1. satır, 2. sütun) yerleştirdiğinizden, ancak sol üstte (tüm pencerenin içinde) olmasını istediğinizi söylediğinizden, tam olarak ne istediğinizi bilmek zor. Neyi başarmaya çalıştığınızı bilmeden, herhangi bir öneride bulunmak zor.

Kılavuz düzen yöneticisini öğrenmenin en kolay yolu kağıt ve kalemle. Bazı gridded grafik kağıdını çıkarın ve widget'larınızı kağıda çizin. Sonra widget'larınızı nereye koyacağınız belli oluyor.

Ayrıca özellikle weight özniteliği açısından rowconfigure ve columnconfigure komutları hakkında da bilgi edinmeniz gerekir. Bu özellik sayesinde, hangi satır ve sütunların daha fazla yer kaplayacak şekilde büyüdüğünü ve küçültebileceğini belirleyebilirsiniz. Bu özellikleri boş satır ve sütunlara uygulayabileceğinizi bilmek de yararlıdır. Bu, iç widget'larınızın aynı boyutta kalmasını ve gui'nizin kenarlarına fazladan herhangi bir uygulatmanızın (genellikle kullanışlı değil, genellikle kullanışlı) olmasını istiyorsanız kullanışlıdır.

Kaba bir kural olarak, her pencerenin bir "ana" widget'ına sahip olması gerekir - UI'ye hükmeden. Genellikle bu bir tuval veya metin widget'idir, ancak olması gerekmez. Bu pencere aracını bulun ve satır ve sütunu 1 (bir) ağırlıkta olacak şekilde verin, böylece kullanıcı pencereyi yeniden boyutlandırdıkça büyür ve küçülür. Durumunuzda bu, 2. satır, 1. sütundaki tuval olacaktır.

1

noktası grid hücre düğmesi ile tam olarak aynı boyutta olmasıdır - Eğer E veya W eğer o fark etmez ... kontrol edebilirsiniz ki (birbirlerine altındaki tüm Widget'larınızı yerleştirerek tüm satır 0 ve sütun 0-4) bu durumda düğmenin NW olduğunu göreceksiniz. Umarım bu yardımcı olur ...

İlgili konular