我已经开始学习TK(来自Python)。我觉得我可以使用网格布局管理器来显示小部件(听起来很简单),但现在我觉得这是一个错误的决定。例如,我只是计划一个框架,里面有多个框架(Wizard Like表格)。所以在那个表格的底部我想要两个按钮(Next,Previous)。现在我想将它们放在底部框架的最右边,但是这样的安排似乎很难。
我尝试为这两个按钮创建单独的内部框架,但无法获得我的结果。有人可以告诉我是否可以使用网格布局管理器实现这样的结果
from Tkinter import *
tk = Tk()
main_frame = Frame(tk)
main_frame.grid(row=0)
frame3 = Frame(main_frame, bg="orange", width=1000, height=100)
frame3.grid(row=1,column=0,columnspan=2)
frame3a = Frame(frame3)
frame3b = Frame(frame3)
frame3a.grid(row =0 ,column = 0)
frame3b.grid(row = 0, column = 1)
btn1 = Button(frame3a, text='Next', width = 10, command=next)
btn1.grid(padx=200, pady =40 )
btn2 = Button(frame3b, text='Previous', width = 10, command=prev)
btn2.grid(padx=00, pady =40 )
frame3.grid_propagate(False)
tk.mainloop()
提前致谢
答案 0 :(得分:3)
阅读:http://effbot.org/tkinterbook/grid.htm
我假设你希望你的窗口看起来像这样(粗糙的ascii传入)
+------------+------------+
| | |
| FRAME | FRAME |
|------------+------------|
| FRAME |PREV|NEXT|
+-------------------------+
为此,我会使用pack
而不是grid
。我制作一个底部框架,使其只是按钮的高度,然后将它们打包成正确的:如果你想在底部的sace中粘贴其他垃圾,你可以使用网格管理器将框架推开。 Pack仅在包含按钮的框架中处于活动状态,但您可以使用gridmanager移动按钮框架。
from Tkinter import *
tk = Tk()
main_frame = Frame(tk)
main_frame.grid(row=0)
frame1 = Frame(main_frame, bg="orange", width=500, height=100)
frame2 = Frame(main_frame, bg="blue", width=500, height=100)
frame3 = Frame(main_frame, bg="green", width=1000, height=50)
frame1.grid(row=1,column=1)
frame2.grid(row=1,column=2)
frame3.grid(row=2,column=1,columnspan=2)
frame3.pack_propagate(0) # Keeps bottom frame from resizing
btn1 = Button(frame3, text='Next', width = 10)
btn1.pack(side='right') # sticks on side
btn2 = Button(frame3, text='Previous', width = 10)
btn2.pack(side='right') # sticks on side
tk.mainloop()