我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python中Tkinter布局管理grid的使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python中Tkinter布局管理grid的使用

pack、grid 和 place 均用于管理同在一个父组件下的所有组件的布局,其中:

pack 是按添加顺序排列组件grid 是按行/列形式排列组件place 则允许程序员指定组件的大小和位置

何时使用 grid 管理器?

grid 管理器可以说是 Tkinter 这三个布局管理器中最灵活多变的。如果你只希望学习使用一个布局管理器,那么 grid 绝对是首选。当你在设计对话框的时候,使用 gird 尤其便捷。如果你此前一直在用 pack 构造窗口布局,那么学习完 grid 你会悔恨当初为啥不早学它。使用一个 grid 就可以简单的实现你用很多个框架和 pack 搭建起来的效果。

注意:不要在同一个父组件中混合使用 pack 和 grid,因为 Tkinter 会很认真地在那儿计算到底先使用那个布局管理器......以至于你等了半个小时,Tkinter 还在那儿纠结不出结果!

用法

使用 grid 排列组件,只需告诉它你想要将组件放置的位置(行/列,row 选项指定行,cloumn 选项指定列)。此外,你并不用提前指出网格(grid 分布给组件的位置称为网格)的尺寸,因为管理器会自动计算。

import tkinter as tk
 
root = tk.Tk()
 
# column 默认值是 0
tk.Label(root, text="用户名").grid(row=0)
tk.Label(root, text="密码").grid(row=1)
 
tk.Entry(root).grid(row=0, column=1)
tk.Entry(root, show="*").grid(row=1, column=1)
 
root.mainloop()

默认情况下组件会居中显示在对应的网格里,你可以使用 sticky 选项来修改这一特性。该选项可以使用的值有 "e","w","s","n"(ewsn 分别表示东西南北,即上北下南左西右东)以及它们的组合。因此,我们可以通过 sticky = "w" 使得 Label 左对齐:

tk.Label(root, text="用户名").grid(row=0, sticky="w")
tk.Label(root, text="密码").grid(row=1, sticky="w")

有时候你可能需要用几个网格来放置一个组件,可以做到吗?当然可以,你只需要指定 rowspan 和 columnspan 就可以实现跨行和跨列的功能:

import tkinter as tk
 
root = tk.Tk()
 
# column 默认值是 0
tk.Label(root, text="用户名").grid(row=0, sticky="w")
tk.Label(root, text="密码").grid(row=1, sticky="w")
 
tk.Entry(root).grid(row=0, column=1)
tk.Entry(root, show="*").grid(row=1, column=1)
 
photo = tk.PhotoImage(file="logo.gif")
tk.Label(root, image=photo).grid(row=0, column=2, rowspan=2, padx=5, pady=5) #rowspan=2 跨两行
 
tk.Button(text="提交", width=10).grid(row=2, columnspan=3, pady=5) #columnspan=3 跨三列
 
root.mainloop()

方法

注:下边所有方法适用于所有组件

grid(**options)
-- 下方表格详细列举了各个选项的具体含义和用法:

选项含义
column1. 指定组件插入的列(0 表示第 1 列)
2. 默认值是 0
columnspan指定用多少列(跨列)显示该组件
in_1. 将该组件放到该选项指定的组件中
2. 指定的组件必须是该组件的父组件
ipadx指定水平方向上的内边距
ipady指定垂直方向上的内边距
padx指定水平方向上的外边距
pady指定垂直方向上的外边距
row指定组件插入的行(0 表示第 1 行)
rowspan指定用多少行(跨行)显示该组件
sticky1. 控制组件在 grid 分配的空间中的位置
2. 可以使用 "n", "e", "s", "w" 以及它们的组合来定位(ewsn代表东西南北,上北下南左西右东)
3. 使用加号(+)表示拉长填充,例如 "n" + "s" 表示将组件垂直拉长填充网格,"n" + "s" + "w" + "e" 表示填充整个网格
4. 不指定该值则居中显示

grid_bbox(column=None, row=None, col2=None, row2=None)
-- 返回一个 4 元组描述该组件所在的限定矩形-- 如果指定 column 和 cow 参数,则返回该位置(column, cow)的组件的限定矩形描述
-- 如果指定 4 个参数,则返回从(column, cow)到(col2, row2)所有组件的限定矩形描述
-- 例如 grid_bbox(0, 0, 1, 1) 返回的是 4 个组件所在的限定矩形

grid_columnconfigure(index, **options)
-- 设置列的属性
-- 注意:设置的是该组件所拥有的 grid 的列
-- 可以设置的选项及含义如下:

选项含义
minsize指定该列的最小宽度
pad指定该列中最大网格的水平边距
weight1. 指定列与列之间的相对距离
2. 默认值是 0
3. 这个你比较难理解,小甲鱼还是详细解说下:初创建窗口的时候,grid 会自动根据组件的尺寸分配窗口的尺寸,当你拉伸窗口的尺寸时就会有空白显示出来。这个选项正是指定列与列之间是否填充空白,默认是不填充的。另外,该选项的值是指定填充空白的倍数,例如 weight = 2 的列会比 weight = 1 的列填充多一倍的空白。所以需要平均填充的话,只需要所有的列都设置 weight = 1 即可。

grid_configure(**options)
-- 跟 grid() 一样

grid_forget()
-- 将组件从屏幕中“删除”
-- 并没有销毁该组件,只是看不到了
-- 可以通过 grid 或其他布局管理器显示已“删除”的组件,但该组件所在网格的选项设置不会恢复

grid_info()
-- 以字典的形式返回当前 grid 的选项

grid_location(x, y)
-- 返回位于(或接近)给定坐标(x, y)的网格位置
-- 返回值是一个 2 元组表示网格对应的(列,行)

grid_propagate(flag)
-- 如果开启,父组件会自动调节尺寸以容纳所有子组件
-- 默认值是开启(flag = True)
-- 该方法仅适用于父组件

grid_remove()
-- 跟 grid_forget() 一样,但恢复的时候会记住该组件所在网格的选项设置

grid_rowconfigure(index, **options)
-- 设置行的属性
-- 注意:设置的是该组件所拥有的 grid 的行
-- 可以设置的选项及含义如下:

选项含义
minsize指定该行的最小高度
pad指定该列中最大网格的垂直边距
weight1. 指定行与行之间的相对距离
2. 默认值是 0
3. 这个你比较难理解,不懂可以参考上边 grid_columnconfigure() 的详细解释

grid_size()
-- 返回该组件所拥有的 grid 的尺寸
-- 返回值是一个 2 元组,表示(列, 行)分别的网格数

grid_slaves(row=None, column=None)
-- 以列表的形式返回该组件的所有子组件
-- 该方法仅适用于父组件

到此这篇关于Python中Tkinter布局管理grid的使用的文章就介绍到这了,更多相关Python Tkinter grid内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python中Tkinter布局管理grid的使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

WPF中怎么使用Grid网格面板布局

这篇文章主要讲解了“WPF中怎么使用Grid网格面板布局”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“WPF中怎么使用Grid网格面板布局”吧!Grid:网格面板Grid顾名思义就是“网格”
2023-06-29

在Java中使用卡片布局管理器的方法

在Java中使用卡片布局管理器的方法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。卡片布局管理器是由 CardLayout 类实现的布局管理器称为卡片布局管理器,用来操纵其
2023-05-31

Java BoxLayout布局管理器怎么使用

这篇文章主要介绍“Java BoxLayout布局管理器怎么使用”,在日常操作中,相信很多人在Java BoxLayout布局管理器怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java BoxLay
2023-06-21

PyQt5中怎么使用布局管理器来管理窗口部件

在PyQt5中,可以使用布局管理器来管理窗口部件的位置和大小。常用的布局管理器有QHBoxLayout、QVBoxLayout、QGridLayout等。以下是一个简单的示例,演示如何使用布局管理器来管理窗口部件:import sys
PyQt5中怎么使用布局管理器来管理窗口部件
2024-03-12

Python中如何实现tkinter的用户登录管理

小编给大家分享一下Python中如何实现tkinter的用户登录管理,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Python的优点有哪些1、简单易用,与C/C+
2023-06-14

python中的tkinter怎么使用

要使用tkinter库来创建一个GUI应用程序,你需要按照以下步骤:1. 导入tkinter库:首先,你需要导入tkinter库,通常通过以下代码完成:```import tkinter as tk```2. 创建一个窗口:使用tkinte
2023-09-28

弹簧布局管理器怎么在Java项目中使用

本篇文章为大家展示了弹簧布局管理器怎么在Java项目中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 由 SpringLayout 类实现的布局管理器称为弹簧布局管理器。利用该布局
2023-05-31

JavaAWT中常用的三种布局管理器详解

这篇文章主要介绍了JavaAWT中常用的三种布局管理器详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-23

Python使用tkinter写一个本地密码管理器

闲来无事,看到自己有很多网站的账户密码,有些网站可能打开一两次也就忘记了,下一次在输入账户密码就想不起来,这样很容易丢失账号。所以本文就来用Python和tkinter写一个本地密码管理器吧
2023-05-19

java中容器的布局管理器有哪些

这篇文章主要介绍“java中容器的布局管理器有哪些”,在日常操作中,相信很多人在java中容器的布局管理器有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java中容器的布局管理器有哪些”的疑惑有所帮助!
2023-06-21

一文搞懂python中Tkinter的使用

本篇文章给大家带来了关于Python的相关知识,其中主要整理了Tkinter的相关问题,Tkinter 是使用 python 进行窗口视窗设计的模块,下面一起来看一下,希望对大家有帮助。【相关推荐:Python3视频教程 】一、前言1.1、Tkinter是什么Tkinter 是使用 python 进行窗口视窗设计的模块。Tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口
2022-07-04

C++ 函数在 GUI 布局管理中的作用是什么?

c++++ gui 布局管理函数可帮助组织和排列 gui 元素,包括 qwidgetlayout 函数(例如 qhboxlayout、qvboxlayout、qgridlayout、qformlayout)和 qlayoutitem 约束(
C++ 函数在 GUI 布局管理中的作用是什么?
2024-04-25

CSS3中的Flex布局怎么使用

这篇文章主要介绍“CSS3中的Flex布局怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CSS3中的Flex布局怎么使用”文章能帮助大家解决问题。简介什么是Flex布局Flex是Flexib
2023-07-04

CSS中display:flex布局的使用示例

小编给大家分享一下CSS中display:flex布局的使用示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!第一个属性和用法:flex-direction我了解
2023-06-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录