【发布时间】:2014-10-31 08:48:11
【问题描述】:
今天做了一个简单的基于网格的 Tkinter Frame 子类。它的主人是一个Tk() 对象。
root = Tk()
root.title('Rep Logger UI')
root.geometry('500x500')
mother = rep_ui(master=root)
mother.mainloop()
我想要做的只是将rep_ui 窗口划分成两个等宽的框架(红色、蓝色),然后在每个框架中放置一些小部件。
但我做的不对。红+蓝框没有完全填满窗口。要么他们没有完全填满rep_ui 类,或者rep_ui 类没有在它的主人(root)内正确扩展?
此外,蓝色和红色框架是不同的 width,尽管我使用相同的 weight-s 列配置了它们。
def __init__(self, master=None):
Frame.__init__(self, master)
"""to make the rep_ui frame expand into the entire OS window."""
self.master.rowconfigure( 0, weight = 1 ) # outer-bounds' row[0] weight set
self.master.columnconfigure( 0, weight = 1 ) # outer-bounds' col[0] weight set
self.grid(sticky=W+E+N+S) # EWNS-sticky mode set
self.columnconfigure( 0, weight = 1 ) # column[0] weight set
self.columnconfigure( 1, weight = 1 ) # column[1] weight set
self.rowconfigure( 0, weight = 1 ) # row[0] weight set
self.rowconfigure( 1, weight = 1 ) # row[1] weight set
""" left and right frames"""
self.fl = Frame(self, bg="red") # RED Frame ( left )
self.fr = Frame(self, bg="blue") # BLUE Frame ( right )
self.fl.grid( row=0, column=0, sticky=N+S+W+E) # .grid() RED one
self.fr.grid row=0, column=1, sticky=N+S+W+E) # .grid() BLUE one
这是我描述的问题的图片:
【问题讨论】: