Tkinter pack布局管理器的用法

发布时间:2021-07-24 14:52:43 作者:chen
来源:亿速云 阅读:274

本篇内容主要讲解“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方法,在顶层窗口中摆放它们的位置:

Tkinter 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布局管理器的用法

这里涉及如何在窗口内对控件进行布局的问题。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)

生成的布局如下所示:

Tkinter pack布局管理器的用法

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

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)

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

Tkinter pack布局管理器的用法

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

解决这个问题的第一步需要另外一个参数: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)

生成的画面如下:

Tkinter pack布局管理器的用法

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

我们可以使用另外一个选项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)

可以得到如下的画面:

Tkinter pack布局管理器的用法

也可以使用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)

生成的画面如下:

Tkinter pack布局管理器的用法

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

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

推荐阅读:
  1. Python GUI中tkinter控件怎么用
  2. Python如何使用 Tkinter Grid布局管理器

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

tkinter

上一篇:Vue中如何在新窗口打开页面及使用Vue-router

下一篇:XPath中怎么提取xml文档数据

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》