千家信息网

Tkinter pack布局管理器的用法

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"Tkinter pack布局管理器的用法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Tkinter pack布局管理器的用法"吧!重新
千家信息网最后更新 2026年11月03日Tkinter pack布局管理器的用法

本篇内容主要讲解"Tkinter pack布局管理器的用法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Tkinter pack布局管理器的用法"吧!

重新审视一下前一篇文章中的代码:

from tkinter import *# 构建主窗口main = Tk()# 构建标签Label(main, text='Hello Tkinter!').pack()# 构建退出按钮Button(main, text='Quit', command=main.quit).pack()# 执行主循环main.mainloop()

程序在构建Label和Button控件之后,两次调用pack方法,在顶层窗口中摆放它们的位置:

虽然不知道为什么,反正画面就是变成了上面的样子。如果这样就可以满足需求当然好,如果想调整布局,例如希望文字表示在按钮的左侧,该怎么做呢?这里先公布答案:


#from tkinter import *import tkinter as tk# 构建主窗口main = tk.Tk()# 构建标签tk.Label(main, text='Hello Tkinter!').pack(side=LEFT, expand=YES, fill=X)# 构建退出按钮tk.Button(main, text='Quit', command=main.quit).pack(side=LEFT, expand=NO)# 执行主循环main.mainloop()

上述代码执行后画面就会变成下面的样子:

这里涉及如何在窗口内对控件进行布局的问题。Tkinter管理布局的方式一共有三种,今天先说明第一种:pack。

pack布局遵循先到先得的原则安排控件的空间,它有几个常用参数。

首先是side参数,它一同有4个可选值:LEFT,TOP,RIGHT和BOTTOM。含义是子窗口需要摆放在父窗口的什么位置。其中LEFT和RIGHT属于水平布局,TOP和BOTTOM是垂直布局。如果连续的水平或者垂直布局,则不同控件分享父窗口的空间。如果发生了水平布局和垂直布局之间的切换,则切换后的布局占用切换前布局中一个控件的空间。例如下面的代码:

Button(root, text="AAAAAAAAAAAAA").pack(side=LEFT)Button(root, text="AAAAAAAAAAAAA").pack(side=LEFT)Button(root, text="AAAAAAAAAAAAA").pack(side=TOP)Button(root, text="AAAAAAAAAAAAA").pack(side=TOP)

生成的布局如下所示:

为了避免复杂化,我们为每个按钮使用了同样的文字列,因此看起来一切都好,但是如果使用了不同的文字列,情况又会有所变化,例如下面的代码:

Button(root, text="Cat").pack(side=LEFT)Button(root, text="Dog").pack(side=LEFT)Button(root, text="Tiger").pack(side=TOP)Button(root, text="Bear").pack(side=TOP)

生成的画面就是这个样子:

由于文字列的不同,每个按钮的大小都会不同,这样很难看。

解决这个问题的第一步需要另外一个参数:expand。它的取值可以是1或0,也可以是Yes或No。当取值为1或者Yes时,表示这个按钮希望占据比实际面积还要大的空间。我们可以使用expand参数如下修改代码:

Button(root, text="Cat").pack(side=LEFT, expand=YES)Button(root, text="Dog").pack(side=LEFT, expand=YES)Button(root, text="Tiger").pack(side=TOP, expand=YES)Button(root, text="Bear").pack(side=TOP, expand=YES)

生成的画面如下:

画面中每个按钮占有的空间差不多一样大了,但是每个按钮的实际尺寸并不相同。

我们可以使用另外一个选项fill来完成控件对自己分得空间的填充,它有三个可选值:X,Y和BOTH本别表示不同的填充方向。例如我们可以使用如下代码实现水平方向的填充:

Button(root, text="Cat").pack(side=LEFT, expand=YES, fill=X)Button(root, text="Dog").pack(side=LEFT, expand=YES, fill=X)Button(root, text="Tiger").pack(side=TOP, expand=YES, fill=X)Button(root, text="Bear").pack(side=TOP, expand=YES, fill=X)

可以得到如下的画面:

也可以使用BOTH选项,实现双方向填充:

Button(root, text="Cat").pack(side=LEFT, expand=YES, fill=BOTH)Button(root, text="Dog").pack(side=LEFT, expand=YES, fill=BOTH)Button(root, text="Tiger").pack(side=TOP, expand=YES, fill=BOTH)Button(root, text="Bear").pack(side=TOP, expand=YES, fill=BOTH)

生成的画面如下:

简单的布局使用pack很方便,随着布局的复杂化,用法也会变得很复杂。

到此,相信大家对"Tkinter pack布局管理器的用法"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

布局 按钮 画面 代码 控件 空间 不同 管理 参数 文字 水平 面的 生成 复杂 实际 方向 样子 切换 位置 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司简介 苏州找大状互联网科技有限公司 郑州华宇互联网科技 广州紫鲸互联网科技 上海万想互联网科技 互联网科技论坛 左右互联网络科技 互联网科技类展会 互联网科技项目计划书材料类 荆州市昕露互联网络科技有限公司 中国航天科技大学国际工业互联网 青岛科技大学互联网大赛研究生 中国互联网十大科技股排名 互联网公司黑科技创始人 互联网方面的科技前沿 元气玛特互联网科技公司是外包吗 雨阳互联网卡科技有限公司 科技互联网专业工作会议发言稿 陕西彩京云互联网科技有限公司 杭州科技互联网公司有哪些 涨乐互联网科技 互联网科技的英文 狮子座互联网科技培训 成都互联网科技公司100强 科技赋能视角下互联网保险发展 高科技互联网套路 从那以后互联网科技有限公司 陕西云淼互联网科技公司 安徽九吞吴互联网科技有限公司 互联网科技创新方面的资料
0