如何使用网格布局管理器安排两个按钮在指定的位置在框架?

2024-10-01 19:15:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经开始学习TK(从Python开始)。我觉得我可以使用GridLayoutManager来显示小部件(听起来很简单),但现在我觉得这是一个错误的决定。例如,我正在计划一个框架,它里面有多个框架(像向导一样的形式)。所以在表单的底部我想有两个按钮(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()

提前谢谢


Tags: 框架maincolumnwidth按钮frametkgrid
1条回答
网友
1楼 · 发布于 2024-10-01 19:15:46

是的,你可以。使用更多来自grid的行/列属性以及sticky属性。在

阅读:http://effbot.org/tkinterbook/grid.htm

我假设你希望你的窗口看起来像这样(原始ascii传入)

+      +      +
|            |            |
|  FRAME     |    FRAME   |
|      +      |
|        FRAME  |PREV|NEXT|
+            -+

为此,我将使用pack而不是grid。我做了一个底部的框架,使它刚好是按钮的高度,然后把它们都打包好:如果你想把其他垃圾粘在底部的袋子里,你可以用网格管理器把框架推到一边。Pack只在包含按钮的框架中处于活动状态,但是您可以使用gridmanager移动buttonframe。在

^{pr2}$

相关问题 更多 >

    热门问题