Grid(网格)布局管理器,是Tkinter里面最灵活的几何管理布局器。注意:不要试图在一个主窗口中混合使用pack和grid。

1.简单的布局

from tkinter import *
root = Tk()
label1 = Label(root, text="用户名:")
label2 = Label(root, text="密码:")
entry1 = Entry(root)
entry2 = Entry(root)
label1.grid(row=0, padx='10', pady='10')
label2.grid(row=1)
entry1.grid(row=0, column=1, padx='10', pady='10')
entry2.grid(row=1, column=1, padx='10', pady='10')
mainloop()

运行结果

说明:

(1) label1没写column属性,默认从0开始

(2) padx 控件与外边框的水平距离;ipadx 控件内文字与控件边框的距离;pady/ipady同理

2. 对齐方式sticky、合并行rowspan、合并列columnspan

from tkinter import *

root = Tk()
label1 = Label(root, text="用户名:")
label2 = Label(root, text="密码:")
entry1 = Entry(root)
entry2 = Entry(root)
btn1 = Button(root, text="登 录", width='') label1.grid(row=0, sticky=E, padx='')
label2.grid(row=1, sticky=E, padx='')
entry1.grid(row=0, column=1, padx='', pady='')
entry2.grid(row=1, column=1, padx='', pady='')
btn1.grid(row=2, column=0, columnspan=2, pady='')
mainloop()

运行效果:

说明

(1) sticky可选的值:N/S/E/W,分别代表上/下/左/右。sticky=E表示靠右显示。

(2) columnspan合并列

3.frame结合grid布局

对稍复杂的布局,网格实现起来费劲的话考虑外层加frame

from tkinter import *

root = Tk()

frm = Frame(root)
frm.grid(padx='', pady='')
frm_left = Frame(frm)
frm_left.grid(row=0, column=0, padx='', pady='')
frm_right = Frame(frm)
frm_right.grid(row=0, column=1, padx='', pady='') btn_left1 = Button(frm_left, text='按 钮 1')
btn_left1.grid(row=0, pady='', ipadx='', ipady='')
btn_left2 = Button(frm_left, text='按 钮 2')
btn_left2.grid(row=1, pady='', ipadx='', ipady='')
btn_left3 = Button(frm_left, text='按 钮 3')
btn_left3.grid(row=2, pady='', ipadx='', ipady='')
btn_left4 = Button(frm_left, text='按 钮 4')
btn_left4.grid(row=3, pady='', ipadx='', ipady='') btn_right1 = Button(frm_right, text='按 钮 5')
btn_right1.grid(row=0, column=0, ipadx='', ipady='')
btn_right2 = Button(frm_right, text='按 钮 6')
btn_right2.grid(row=0, column=1, ipadx='', ipady='')
txt_right = Text(frm_right, width='', height='')
txt_right.grid(row=1, column=0, columnspan=2, pady='')
root.mainloop()

Python_tkinter(3)_grid布局的更多相关文章

  1. Python_tkinter(1)_窗口创建与布局

    环境:Python 3.7.2 1. 窗口基本创建(窗口标题.窗口大小) import tkinter from tkinter import * # 初始化Tk() root = Tk() # 设置 ...

  2. bootstrap深入理解之格子布局

    一.源码文件: _grid.scss:格子系统类文件 Mixins/_grid.scss:支持格子系统实现的mixin集合 Mixins/_grid-framework.scss:格子系统实现的核心m ...

  3. 前端框架 EasyUI (2)页面布局 Layout

    在 Web 程序中,页面布局对应用程序的用户体验至关重要. 在一般的信息管理类的 Web 应用程序中,页面结构通常有一个主工作区,然后在工作区上下左右靠近边界的区域设置一些边栏,用于显示信息或放置一些 ...

  4. TODO:Laravel 使用blade标签布局页面

    TODO:Laravel 使用blade标签布局页面 本文主要介绍Laravel的标签使用,统一布局页面.主要用到到标签有@yield,@ stack,@extends,@section,@stop, ...

  5. CSS HTML元素布局及Display属性

    本篇文章主要介绍HTML的内联元素.块级元素的分类与布局,以及dispaly属性对布局的影响. 目录 1. HTML 元素分类:介绍内联元素.块级元素的分类. 2. HTML 元素布局:介绍内联元素. ...

  6. 谈谈一些有趣的CSS题目(六)-- 全兼容的多列均匀布局问题

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  7. Xamarin+Prism开发详解五:页面布局基础知识

    说实在的研究Xamarin到现在,自己就没设计出一款好的UI,基本都在研究后台逻辑之类的!作为Xamarin爱好者,一些简单的页面布局知识还是必备的. 布局常见标签: StackLayout Abso ...

  8. 界面设计技法之css布局

    css布局之于页面就如同ECMAScript之于JS一般,细想一番,html就如同语文,css就如同数学,js呢,就是物理,有些扯远,这里就先不展开了. 回到主题,从最开始的css到如今的sass(l ...

  9. Android如何制作漂亮的自适布局的键盘

    最近做了个自定义键盘,但面对不同分辨率的机型其中数字键盘不能根据界面大小自已铺满,但又不能每种机型都做一套吧,所以要做成自适应,那这里主讲思路. 这里最上面的titlebar高度固定,下面输入的金额高 ...

随机推荐

  1. 2019春季训练02: JU Flash Contest Gym - 102035 训练报告与复盘

    这场题极其简单 Solved 19 / 19 A Gym 102035A N integers 略 Solved 10 / 33 B Gym 102035B Mahmoud the Thief 用ma ...

  2. An overview of network penetration testing

    1. an SQLi vulnerability will allow you  to do the  following query the database using select statem ...

  3. javascript数组去重 String字符串去掉两端空格 javascript Array二分法排序 比较 javascript 求和

    通过原形添加方法: ==================数组去重(对象去重法)======================= Array.prototype.unique=function(){ va ...

  4. OpenCV-Python教程9-平滑图像

    先解释一个单词 blur:使...模糊不清 滤波与模糊 滤波和模糊都属于卷积,不同的滤波方法之间只是卷积核不同(对线性滤波而言) 低通滤波器是模糊,高通滤波器是锐化 低通滤波器允许低频信号通过,在图像 ...

  5. thinkphp5调用阿里大鱼短信

    :在Controller.php public function send() { if (request()->isPost()) { $phone = input('post.phone/s ...

  6. spark算子

    1.map 一条一条读取 def map(): Unit ={ val list = List("张无忌", "赵敏", "周芷若") va ...

  7. Mysql 学习笔记02

    14 mysql 的常见函数 数学函数 1 abs() 函数 ,返回绝对值 2 bin() 函数 ,返回数值的二进制数值 3 hex()函数 ,返回数值的十六进制的值 4  floor()函数 ,对小 ...

  8. 数组方括号有趣的split方法

    今天看到了split的方法感觉好神奇的样子 split是javascript内置方法 就像join方法是连接数组并转换为字符串一样split方法是把数组拆分成多个部分,而且每一个部分都是数组的元素. ...

  9. Everything at Once

    Everything at Once As sly as a fox as strong as an ox ♥ sly 英 [slaɪ] 美 [slaɪ] adj. 狡猾的:淘气的:诡密的 比较级 s ...

  10. 英语口语练习系列-C38-颜色-谈论日常活动

    词汇颜色 color red passion green peace energy blue calm purple mystery yellow royal 询问日常生活 When do you g ...