tkinter-grid布局详解

tkinter-grid布局详解前文 tkinter pack 布局详解介绍了 pack 布局 相信对 tkinter 的布局套路有了一定的了解 本文将介绍另一种布局类 grid 同样 展示布局类与控件类的类间关系 文章目录 grid 默认分布 columnrowcol 从字面意思上可以推断 这种布局方式就像网格一样来分布控件 那么具体会呈现什么样的效果 要怎么编码控制呢 同样的套路 通过实例来进行直观的讲解 widget grid cnf kw

前文tkinter-pack布局详解介绍了pack布局,相信对tkinter的布局套路有了一定的了解。本文将介绍另一种布局类grid。

grid

grid从字面意思上可以推断,这种布局方式就像网格一样来分布控件。那么具体会呈现什么样的效果,要怎么编码控制呢。同样的套路,通过实例来进行直观的讲解。

widget.grid(cnf={}, kw)

默认分布

from tkinter import (Tk, Button) from tkinter.constants import RIGHT, LEFT, X, Y, BOTH main_win = Tk() main_win.title('渔道的pack布局') width = 300 height = 300 main_win.geometry(f'{width}x{height}') # print(main_win.keys()) apple_color = 'Crimson' banana_color = 'Yellow' orange_color = 'Orange' grape_color = 'Purple' fruit = { 
   'apple':'Crimson', 'banana':'Yellow', 'orange':'Orange', 'grape':'Purple'} # 默认显示效果 for k,v in fruit.items(): bt = Button(main_win, text=k, fg='black', bg=v) bt.grid() print(bt.grid_info()) main_win.mainloop() 

print函数的打印信息如下:

在这里插入图片描述

从上面的例子可以看出,使用grid布局时,可以想象,在主窗口上 隐式的布满网格(cell),子控件(如,按钮)就会被放在这些网格中。

column

指定控件所在的列

i = 0 for k,v in fruit.items(): bt = Button(main_win, text=k, fg='black', bg=v) bt.grid(column=i) i += 1 print(bt.grid_info()) 

row

指定控件所在的行

i = 0 for k,v in fruit.items(): bt = Button(main_win, text=k, fg='black', bg=v) bt.grid(row=0, column=i) i += 1 print(bt.grid_info()) 

columnspan

指定每个控件横跨的列数

i = 0 for k,v in fruit.items(): bt = Button(main_win, text=k, fg='black', bg=v) bt.grid(column=i, columnspan=3) i += 1 print(bt.grid_info()) 

rowspan

指定每个控件横跨的行数

i = 0 for k,v in fruit.items(): bt = Button(main_win, text=k, fg='black', bg=v) bt.grid(column=i, rowspan=3) i += 1 print(bt.grid_info()) 

ipadx

水平方向内边距

for k,v in fruit.items(): bt = Button(main_win, text=k, fg='black', bg=v) bt.grid() print(bt.grid_info()) for k,v in fruit.items(): bt = Button(main_win, text=k, fg='black', bg=v) bt.grid(ipadx=20) print(bt.grid_info()) 

在这里插入图片描述

ipady

垂直方向内边距

for k,v in fruit.items(): bt = Button(main_win, text=k, fg='black', bg=v) bt.grid() print(bt.grid_info()) for k,v in fruit.items(): bt = Button(main_win, text=k, fg='black', bg=v) bt.grid(ipady=20) print(bt.grid_info()) 

在这里插入图片描述

padx

水平方向外边距

i = 1 for k,v in fruit.items(): bt = Button(main_win, text=k, fg='black', bg=v) if i%2 == 0: bt.grid(padx=20, column=1) else: bt.grid(padx=20) i += 1 print(bt.grid_info()) 

在这里插入图片描述

pady

垂直方向外边距

i = 1 for k,v in fruit.items(): bt = Button(main_win, text=k, fg='black', bg=v) if i%2 == 0: bt.grid(pady=20, column=1) else: bt.grid(pady=20) i += 1 print(bt.grid_info()) 

在这里插入图片描述

sticky

sticky类似于pack的anchor,决定控件在cell中锚点,也就是控件在cell中的起始位置,可设置的值为’n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’; ‘e’、‘w’、‘s’、’n’分别表示东西南北。

for k,v in fruit.items(): bt = Button(main_win, text=k, fg='black', bg=v) bt.grid() print(bt.grid_info()) for k,v in fruit.items(): bt = Button(main_win, text=k, fg='black', bg=v) bt.grid(sticky='nw') print(bt.grid_info()) 

好了,grid的属性就介绍到这里。是不是非常简单呢!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231972.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【MySQL】使用Visio绘制数据库关系模型图

    【MySQL】使用Visio绘制数据库关系模型图使用Visio绘制数据库关系模型图1新建项目文件—新建–软件和数据库—数据库模型图点击后,出现如下界面:2绘制左侧“实体关系”中将“实体”形状拖放到绘制界面,如下图3编辑实体名称,如下图:4编辑列点击“列”如下图:完成实体:客人信息表GuestRecord,如下截图完成实体:客房表Room(同上操作),如下图5关系绑定5.1添加列RoomID到客人信息表5.2将“实体关系”中的关系工具拖放到某个实体上(鼠标不松开),直到该实体边框变红色,松开;箭头指

    2022年7月16日
    15
  • Windows系统查看CUDA版本号

    Windows系统查看CUDA版本号问题:之前安装了CUDA,但不知道是哪个版本了?也不知道安装到哪了?解决方法:1.打开控制面板在按住Win键的情况下,按R键,呼唤运行栏。在运行框中输入control,如下图所示:2.进入NVIDIA控制面板3.查看系统信息验证:找到之前的安装目录确定了确实是10.1版本…

    2022年5月28日
    41
  • mac安装mysql中设置密码遇到的问题和设置快捷命令打开mysql

    mac安装mysql中设置密码遇到的问题和设置快捷命令打开mysql

    2021年9月12日
    61
  • c++关键字 mutable

    c++关键字 mutablemutable 的中文意思是 可变的 易变的 跟 constant 既 C 中的 const 是反义词 在 C 中 mutable 也是为了突破 const 的限制而设置的 被 mutable 修饰的变量 将永远处于可变的状态 即使在一个 const 函数中 我们知道 如果类的成员函数不会改变对象的状态 那么这个成员函数一般会声明成 const 的 但是 有些时候 我们需要在 const 的函数里面

    2026年1月28日
    1
  • 股票历史数据库(腾讯股票历史数据接口)

    歪枣网财经数据下载接口集合,百度搜索歪枣网官网序号 名称 接口描述 数据字段 更新日期 操作0 A股列表 沪深京A股基本信息 code股票代码name股票名称stype股票类型,1:深证股票,2:上证股票,3:北证股票,4:港股hsgt沪深港通,1:沪股通:2:深股通、3:港股通(沪)、4:港股通(深)、5:港股通(沪+深)bk所属板块,个股包括主板、创业板、科创板cfg成分股,该板块的成分股roeROEzgb总股本(股)ltgb流通股本(股)ltsz流通市值(元)

    2022年4月10日
    288
  • springboot使用@SpringBootTest注解进行单元测试「建议收藏」

    概述@SpringBootTest注解是SpringBoot自1.4.0版本开始引入的一个用于测试的注解。基本用法如下:1.添加依赖:<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation…

    2022年4月14日
    152

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号