本文转自:https://www.cnblogs.com/ruo-li-suo-yi/p/7425307.html          @ 箬笠蓑衣

Grid(网格)布局管理器会将控件放置到一个二维的表格里。主控件被分割成一系列的行和列,表格中的每个单元(cell)都可以放置一个控件。

注意:不要试图在一个主窗口中混合使用pack和grid

(1)标签控件

1 from tkinter import *
2
3 tk=Tk() 4 #标签控件,显示文本和位图,展示在第一行 5 Label(tk,text="First").grid(row=0) 6 Label(tk,text="Second").grid(row=1)#第二行 7 8 #主事件循环 9 mainloop()

(2) 输入控件

 1 from tkinter import *2 3 tk=Tk()  4 #标签控件,显示文本和位图,展示在第一行  5 Label(tk,text="First").grid(row=0)  6 Label(tk,text="Second").grid(row=1)#第二行  7  8 #输入控件  9 Entry(tk).grid(row=0,column=1) 10 Entry(tk).grid(row=1,column=1) 11 12 #主事件循环 13 mainloop()

(3)sticky参数的使用

 1 from tkinter import *2 3 tk=Tk()  4 #标签控件,显示文本和位图,展示在第一行  5 Label(tk,text="First").grid(row=0,sticky=E)#靠右  6 Label(tk,text="Second").grid(row=2,sticky=W)#第二行,靠左  7  8 #输入控件  9 Entry(tk).grid(row=0,column=1) 10 Entry(tk).grid(row=2,column=1) 11 12 #主事件循环 13 mainloop()

(4)columnspan和rowspan参数的使用

columnspan选项可以指定控件跨越多列显示,而rowspan选项同样可以指定控件跨越多行显示。

 1 from tkinter import *2 3 tk=Tk()  4 var=IntVar()  5  6 #标签控件,显示文本和位图,展示在第一行  7 Label(tk,text="First").grid(row=0,sticky=E)#靠右  8 Label(tk,text="Second").grid(row=1,sticky=W)#第二行,靠左  9 10 #输入控件 11 Entry(tk).grid(row=0,column=1) 12 Entry(tk).grid(row=1,column=1) 13 14 button=Checkbutton(tk,text="Precerve aspect",variable=var) 15 button.grid(sticky=W) 16 17 #主事件循环 18 mainloop()

跨越两列显示如下

 1 from tkinter import *2 3 tk=Tk()  4 var=IntVar()  5  6 #标签控件,显示文本和位图,展示在第一行  7 Label(tk,text="First").grid(row=0,sticky=E)#靠右  8 Label(tk,text="Second").grid(row=1,sticky=W)#第二行,靠左  9 10 #输入控件 11 Entry(tk).grid(row=0,column=1) 12 Entry(tk).grid(row=1,column=1) 13 14 button=Checkbutton(tk,text="Precerve aspect",variable=var) 15 button.grid(columnspan=2,sticky=W) 16 17 #主事件循环 18 mainloop()

 1 from tkinter import *2 3 tk=Tk()  4 var=IntVar()  5  6 #标签控件,显示文本和位图,展示在第一行  7 Label(tk,text="First").grid(row=0,sticky=E)#靠右  8 Label(tk,text="Second").grid(row=1,sticky=W)#第二行,靠左  9 10 #输入控件 11 Entry(tk).grid(row=0,column=1) 12 Entry(tk).grid(row=1,column=1) 13 14 #多选框插件 15 button=Checkbutton(tk,text="Precerve aspect",variable=var) 16 button.grid(row=2,columnspan=2,sticky=W) 17 18 #插入图片 19 photo=PhotoImage(file="python_logo.gif") 20 label=Label(image=photo) 21 label.image=photo 22 label.grid(row=0,column=2) 23 24 #主事件循环 25 mainloop()

 1 from tkinter import *2 3 tk=Tk()  4 var=IntVar()  5  6 #标签控件,显示文本和位图,展示在第一行  7 Label(tk,text="First").grid(row=0,sticky=E)#靠右  8 Label(tk,text="Second").grid(row=1,sticky=W)#第二行,靠左  9 10 #输入控件 11 Entry(tk).grid(row=0,column=1,padx=10,pady=10) 12 Entry(tk).grid(row=1,column=1) 13 14 #多选框插件 15 button=Checkbutton(tk,text="Precerve aspect",variable=var) 16 button.grid(row=2,columnspan=2,sticky=W) 17 18 #插入图片 19 photo=PhotoImage(file="python_logo.gif") 20 label=Label(image=photo) 21 label.image=photo 22 label.grid(row=0,column=2,rowspan=2,columnspan=2, 23 sticky=W+E+N+S, padx=5, pady=5)#合并两行,两列,居中,四周外延5个长度 24 25 #主事件循环 26 mainloop()

(5)

 1 from tkinter import *2 3 tk=Tk()  4 var=IntVar()  5  6 #标签控件,显示文本和位图,展示在第一行  7 Label(tk,text="First").grid(row=0,sticky=E)#靠右  8 Label(tk,text="Second").grid(row=1,sticky=W)#第二行,靠左  9 10 #输入控件 11 Entry(tk).grid(row=0,column=1,padx=10,pady=10) 12 Entry(tk).grid(row=1,column=1) 13 14 #多选框插件 15 button=Checkbutton(tk,text="Precerve aspect",variable=var) 16 button.grid(row=2,columnspan=2,sticky=W) 17 18 #插入图片 19 photo=PhotoImage(file="python_logo.gif") 20 label=Label(image=photo) 21 label.grid(row=0,column=2,rowspan=2,columnspan=2, 22 sticky=W+E+N+S, padx=5, pady=5)#合并两行,两列,居中,四周外延5个长度 23 24 #按钮控件 25 button1=Button(tk,text="Zoom in") 26 button1.grid(row=2,column=2) 27 button2=Button(tk,text="Zoom out") 28 button2.grid(row=2,column=3) 29 30 31 #主事件循环 32 mainloop()

(6)padx和pady参数的应用

 1 from tkinter import *2 import time  3  4 t = Tk()  5 t.title('与python聊天中')  6  7 #创建frame容器  8 frmLT = Frame(width=500, height=320, bg='white')  9 frmLC = Frame(width=500, height=150, bg='red') 10 frmLB = Frame(width=500, height=30) 11 frmRT = Frame(width=200, height=500) 12 13 frmLT.grid(row=0, column=0) 14 frmLC.grid(row=1, column=0) 15 frmLB.grid(row=2, column=0) 16 frmRT.grid(row=0, column=1, rowspan=3)

 1 from tkinter import *2 import time  3  4 t = Tk()  5 t.title('与python聊天中')  6  7 #创建frame容器  8 frmLT = Frame(width=500, height=320, bg='white')  9 frmLC = Frame(width=500, height=150, bg='red') 10 frmLB = Frame(width=500, height=30) 11 frmRT = Frame(width=200, height=500) 12 13 frmLT.grid(row=0, column=0,padx=1,pady=3) 14 frmLC.grid(row=1, column=0,padx=1,pady=3) 15 frmLB.grid(row=2, column=0) 16 frmRT.grid(row=0, column=1, rowspan=3,padx=2,pady=3)

利用padx和pady,可以将框架边界区分开

 1 from tkinter import *2 import time  3  4 t = Tk()  5 t.title('与python聊天中')  6  7 #创建frame容器  8 frmLT = Frame(width=500, height=320, bg='white')  9 frmLC = Frame(width=500, height=150, bg='red') 10 frmLB = Frame(width=500, height=30) 11 frmRT = Frame(width=200, height=500) 12 13 frmLT.grid(row=0, column=0,padx=1,pady=3) 14 frmLC.grid(row=1, column=0,padx=1,pady=3) 15 frmLB.grid(row=2, column=0) 16 frmRT.grid(row=0, column=1, rowspan=3,padx=2,pady=3) 17 18 '''#固定容器大小 19 frmLT.grid_propagate(0) 20 frmLC.grid_propagate(0) 21 frmLB.grid_propagate(0) 22 frmRT.grid_propagate(0)''' 23 24 #添加按钮 25 btnSend = Button(frmLB, text='发 送', width = 8)#在frmLB容器中添加 26 btnSend.grid(row=2,column=0) 27 btnCancel = Button(frmLB, text='取消', width = 8) 28 btnCancel.grid(row=2,column=1,sticky=E) 29 30 #添加图片 31 imgInfo = PhotoImage(file = "python_logo.gif") 32 lblImage = Label(frmRT, image = imgInfo) 33 lblImage.image = imgInfo 34 lblImage.grid() 35 36 #固定容器大小 37 frmLT.grid_propagate(0) 38 frmLC.grid_propagate(0) 39 frmLB.grid_propagate(0) 40 frmRT.grid_propagate(0)

Python基础=== Tkinter Grid布局管理器详解相关推荐

  1. python布局管理_Python基础=== Tkinter Grid布局管理器详解

    本文转自:https://www.cnblogs.com/ruo-li-suo-yi/p/7425307.html          @ 箬笠蓑衣 Grid(网格)布局管理器会将控件放置到一个二维的表 ...

  2. python grid函数_(转)Python Tkinter Grid布局管理器详解

    Grid(网格)布局管理器会将控件放置到一个二维的表格里.主控件被分割成一系列的行和列,表格中的每个单元(cell)都可以放置一个控件. 什么时候使用Grid管理器 grid管理器是Tkinter里面 ...

  3. Java布局管理器详解

    很多初学[Java教程]的小伙伴对Java布局管理器不是很了解,下面小编就来给大家进行详细介绍. 边框布局管理器 BorderLayout(边框布局管理器)是 Window.JFrame 和 JDia ...

  4. Java GUI(图形用户界面)-----GridLayout(网格布局管理器)详解

    GridLayout(网格布局管理器) 可以把容器分成n行m列大小相等的网格,每个网格放置一个组件,按照从左往右,从上往下的顺序依次添加,放置在Gird Layout布局管理器的组件将自动占据网格的整 ...

  5. python基础教程:函数装饰器详解

    谁可以作为装饰器(可以将谁编写成装饰器): 函数 方法 实现了__call__的可调用类 装饰器可以去装饰谁(谁可以被装饰): 函数 方法 类 基础:函数装饰器的表现方式 假如你已经定义了一个函数fu ...

  6. Python基础之格式化输出函数format()功能详解

    之前发过一篇文章:Python基础之常用格式化输出字符详解 但是呢,有时候我们需要用到多个%的时候,用这个就很不方便了,比如数错%数量或者一 一对应的时候... 这里补充一个字典方式的格式化输出字符的 ...

  7. NLB网路负载均衡管理器详解

    原文:NLB网路负载均衡管理器详解 序言 在上一篇配置iis负载均衡中我们使用啦微软的ARR,我在那篇文章也中提到了网站的高可用性,但是ARR只能做请求入口的消息分发服务,这样如果我们的消息分发服务器 ...

  8. python无师自通配套资源_Python Tkinter Pack布局管理器(超级详细,看了无师自通)...

    GUI 编程就相当于小孩子搭积木,每个积木块应该放在哪里,每个积木块显示为多大,也就是对大小和位置都需要进行管理,而布局管理器正是负责管理各组件的大小和位置的.此外,当用户调整了窗口的大小之后,布局管 ...

  9. 零基础学Android——布局管理器

    第一章<第一个Android应用程序> 第三节 布局管理器 导入: 我们在使用手机软件时候,可以发现每一款软件的组件排列方式都是不同的,这样的布局可以轻松的了解和使用软件,在这一节和我一起 ...

  10. python tkinter 布局_Python Tkinter Place布局管理器及用法

    Place 布局就是其他 GUI 编程中的"绝对布局",这种布局方式要求程序显式指定每个组件的绝对位置或相对于其他组件的位置. 如果要使用 Place 布局,调用相应组件的 pla ...

最新文章

  1. zabbix专题:第十一章 zabbix之SNMP方式监控
  2. 使用OpenCV搭建违章停车检测系统
  3. 基于OpenCV的车辆变道检测
  4. Tech Ed上Windows 7值得关注的课程
  5. 行业谈实践,客户送祝福
  6. 我也聊聊串口通信协议:数据包校验与常用校验算法
  7. Java 设计模式-【单例模式】
  8. STM32H743+CubeMX-SPI与DRV8889串行通讯,驱动步进电机
  9. java判断端口是否可用
  10. 理解JVM(五):Java内存模型与线程
  11. IOS:static和extern的使用
  12. 电脑、手机 自动化 键鼠操作( 类似按键精灵 )
  13. 您知道这是什么的,对吧!
  14. Rayson API 框架分析系列之1: 简介
  15. 测试两台计算机网络情况,使用iperf测试两台电脑之间的网速
  16. windows c语言新建dos,dos命令怎么用_DOS下创建文件、文件夹
  17. 【学习笔记】NLP之影评情感分类
  18. IT忍者神龟之Microsoft Office Enterprise 2007 简体版 企业版 序列号
  19. python混淆ios代码_iOS 代码混淆的简单使用
  20. java如何做标签云

热门文章

  1. PyTorch搭建LSTM实现多变量多步长时间序列预测(一):直接多输出
  2. 基于百度paddle的快递面单三段码识别
  3. android sd卡数据恢复软件下载,内存卡数据恢复
  4. closest()方法简介
  5. H5小游戏——看你有多色
  6. STM32Cube配置LCD1602液晶屏
  7. 实数单竖线,向量双竖线,范数双竖线加下标,矩阵单竖线
  8. Jquery实现遮罩
  9. wordpress使用又拍云存储实现CDN加速使用心得
  10. 寻找四叶草HTML5小游戏,寻找四叶草作文(8篇)