2013-10-03 53 views
0

Tkinter上的網格不能正確調整控件大小。這裏是我的代碼:Py/Tk Grid不表現屬性

menubar = Menu(frm) 
txt = Text(frm) 
def TxtTupleLineCol(): 
    str = txt.index(INSERT) 
    return tuple(str.split(sep='.')) 
scrl = Scrollbar(frm, command=txt.yview) 
scrl.grid(column=1, sticky=(E + N + S)) 
txt.config(yscrollcommand=scrl.set) 
txt['wrap'] = WORD 
scrlw = Scrollbar(frm, orient=HORIZONTAL, command=txt.xview) 
scrlw.grid(row=1, sticky=(S + E + W)) 
st = StatusBar(frm) 
tu = TxtTupleLineCol() 
st.variable.set(('Linha:' + tu[-2] + ' Coluna:' + tu[-1])) 
txt.config(xscrollcommand=scrlw.set) 
txt.grid(row=0, column=0, sticky=NSEW) 
st.grid(row=2, sticky=S + E + W) 
filen = Cfg("") 
frm.columnconfigure(0, weight=1) 
frm.columnconfigure(1, weight=1) 
frm.rowconfigure(1,weight=1) 
frm.rowconfigure(0, weight=1) 
frm.grid_propagate(False) 

如果我調整窗口的大小,它將滾動和文本之間的空格。 #FIXME?(在另一部分代碼中,我添加了row/col config./ portuguese並不影響理解。)

+0

在您最近的編輯中,您向兩列添加了權重。你不想這樣做。您只希望具有文本小部件的列具有權重。重量意味着「讓我擴大以填充額外空間」,並且您只希望文本小部件展開。如果兩列具有相同的權重,則它們將擴展相同的數量以填充額外的空間,從而生成一個滾動條,並在其周圍留出很多額外空間。 –

+0

@BryanOakley:謝謝,修正! –

回答

0

您的代碼不會運行,但根據我看到的內容判斷您沒有給出行或列的任何重量,這通常是使用網格時導致「不能正確調整大小」問題的原因。最有可能的是,添加像這樣的問題將解決問題:

frm.columnconfigure(0, weight=1) 
+0

我寫了: >在另一部分代碼中,我添加了行/列配置。 –

+0

@Carlos:請放心,tkinter在調整大小方面工作正常。如果你的程序沒有正確調整大小,那麼你做錯了什麼。如果您沒有向我們展示您的所有代碼,我們就無法猜測您做錯了什麼。 –

+0

Upadated。傳播網格是錯誤的? –