当前位置:   article > 正文

Python源码:Tkinter组件布局管理的3种方式_tkinter pack布局

tkinter pack布局

Tkinter组件布局管理可以使用pack()方法、grid()方法和place()方法。pack()方法将组件放置在窗口中,grid()方法将组件放置在网格布局中,place()方法将组件放置在指定位置。

# 我的Python教程,官方微信公众号:wdPython

# 我的Python教程,官方微信公众号:wdPython

  • 1
  • 2
  • 3
  • 4

01使用pack()方法布局:

在Tkinter中,pack方法用于将控件打包到容器中,并控制其位置和大小。pack方法接受以下参数:

side: 指定控件应该放置在容器的哪个方向。可以设置为top、bottom、left、right、topleft、topright、bottomleft或bottomright。默认值为top.

fill: 指定控件在容器中应该如何填充空间。可以设置为none、x、y或both。默认值为none.

expand: 指定控件是否应该扩展以填充可用空间。可以设置为True或False。默认值为False.

anchor: 指定控件在容器中的位置参考点。可以设置为n、ne、nw、s、se或sw. 默认值为center.

padding: 指定控件与容器边界之间的内边距。默认值为0.

fill: 指定控件在容器中应该如何填充空间。可以设置为none、x、y或both. 默认值为none.
在这里插入图片描述


import tkinter as tk

root = tk.Tk()

label1 = tk.Label(root, text="Label 1")
label2 = tk.Label(root, text="Label 2")
label3 = tk.Label(root, text="Label 3")

label1.pack()
label2.pack()
label3.pack()

root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

02使用grid()方法布局:

grid是Tkinter中的一个布局管理器,用于在容器(例如Frame)中安排控件的位置和大小。grid方法接受以下参数:

row: 控制控件在行中的位置。

column: 控制控件在列中的位置。

rowspan: 控制控件跨越的行数。

columnspan: 控制控件跨越的列数。

ipadx: 控制控件在水平方向上的内边距。

ipady: 控制控件在垂直方向上的内边距。

padx: 控制控件与容器边界在水平方向上的内边距。

pady: 控制控件与容器边界在垂直方向上的内边距。

row_default: 控制控件在行中的默认位置。

column_default: 控制控件在列中的默认位置。在这里插入图片描述


import tkinter as tk

root = tk.Tk()

label1 = tk.Label(root, text="Label 1")
label2 = tk.Label(root, text="Label 2")
label3 = tk.Label(root, text="Label 3")

label1.grid(row=0, column=0)
label2.grid(row=1, column=0)
label3.grid(row=2, column=0)

root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

03使用place()方法布局:

在Python中,place方法用于设置控件在容器中的位置和大小。该方法接受以下参数:

x: 设置控件在容器中的水平位置。可以是一个整数或None。

y: 设置控件在容器中的垂直位置。可以是一个整数或None。

relx: 设置控件在容器中的相对水平位置。可以是一个小数(0表示左侧,1表示右侧)。

rely: 设置控件在容器中的相对垂直位置。可以是一个小数(0表示上侧,1表示下侧)。

width: 设置控件的宽度。可以是一个整数或None。

height: 设置控件的高度。可以是一个整数或None。
在这里插入图片描述

import tkinter as tk

root = tk.Tk()

label1 = tk.Label(root, text="Label 1")
label2 = tk.Label(root, text="Label 2")
label3 = tk.Label(root, text="Label 3")

label1.place(x=50, y=50)
label2.place(x=100, y=100)
label3.place(x=150, y=150)

root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/778767
推荐阅读
相关标签
  

闽ICP备14008679号