2013-08-22 109 views
1

我創建從tkSimpleDialog.Dialog派生的類。的Tkinter tkSimpleDialog.Dialog調整

我已實施所述主體(自走,主)方法,其中,I創建一些窗口小部件(按鈕,標籤),並使用網格佈局它們()。

我設置了網格佈局舒展,但它從來沒有采取充分窗口。此外,如果我調整窗口大小,這些小部件將保持原位並不移動。

這裏的初始佈局:

After resizing

這裏是我的代碼:

import Tkinter 
import tkSimpleDialog 

class Test(tkSimpleDialog.Dialog): 

    # ######################################## 
    def __init__(self, parent): 

    tkSimpleDialog.Dialog.__init__(self, parent, "?") 

    # ######################################## 
    def body(self, master): 

     Tkinter.Label(master, text="Hello").grid(row=0, column=0, columnspan=2, sticky="nsew") 
     Tkinter.Button(master, text="ONE").grid(row=1, column=0, sticky="nsew") 
     Tkinter.Button(master, text="TWO").grid(row=1, column=1, sticky="nsew") 

     master.columnconfigure(0, weight=1) 
     master.columnconfigure(1, weight=1) 
     master.rowconfigure(0, weight=1) 
     master.rowconfigure(1, weight=1) 

     self.resizable(height=True, width=True) 

if __name__ == "__main__": 

    Test(Tkinter.Tk("test")) 

所需

Initial layout

而這裏的時候我調整窗口的大小會發生什麼行爲是:按鈕ONE和TWO將伸展以填充窗口。任何建議?

謝謝!

回答

1

這似乎是Dialog類中的一個錯誤。在它包裝它這個對話框的主要部分的代碼:

body.pack(padx=5, pady=5) 

注意,它不包括expandfill屬性,所以身體是不會成長,以填補額外的空間在其父母。

+0

我確認,改變了該行:body.pack(padx = 5,pady = 5,補都=展開= TRUE)和它現在的工作。 Windows上的文件是: /Lib/lib-tk/tkSimpleDialog.py – Marco83

相關問題