Tkinter教程之Grid篇

Python tkinter -第三章 (2) grid布局 3.2.3.2 grid grid布局管理采用类似表格的结构来管理控件的,使用起来非常灵活。就是把窗口用单元格的形式来定位,可以像编辑表格一样放置控件。grid采用行列确定位置,行列交汇处为一个单元格。每一列中,列宽由这一列中最宽的单元格确定。每一行中,行高由这一行中最高的单元格决定。控件并不是充满整个单元格的,你可以指定单元格中剩余空间的使用。 阅读详情
'''Tkinter教程之Grid篇'''
# Tkinter参考中最推荐使用的一个布局器。实现机制是将Widget逻辑上分割成表格,在指定的位置放置想要的Widget就可以了。
'''1.第一个Grid例子'''
# -*- coding: cp936 -*-
#
 使用grid来布局组件
from Tkinter import *
root 
= Tk()
# 创建两个Label
lb1 = Label(root,text = 'Hello')
lb2 
= Label(root,text = 'Grid')

lb1.grid()
lb2.grid()

root.mainloop()
# grid有两个最为重要的参数,用来指定将组件放置到什么位置,一个是row,另一个是column。如果不指定row,会将组件放置到第一个可用的行上,如果不指定column,则使用第一列。
'''2.使用row和column来指定位置'''
# -*- coding: cp936 -*-
#
 使用grid来布局组件
from Tkinter import *
root 
= Tk()
# 创建两个Label
lb1 = Label(root,text = 'Hello')
lb2 
= Label(root,text = 'Grid')

lb1.grid()
# 指定lb2为第一行(使用索引0开始),第二列(使用索引0开始)
lb2.grid(row = 0,column = 1)

root.mainloop()
# grid有两个最为重要的参数,用来指定将组件放置到什么位置,一个是row,另一个是column。如果不指定row,会将组件放置到第一个可用的行上,如果不指定column,则使用第一列。注意这里使用grid时不需要创建,直接使用行列就可以。
'''3.为其它组件预定位置'''
# 可以使用row/column来指定组件的放置位置,并预先留出空间,以务其它需要。
#
 -*- coding: cp936 -*-
#
 使用grid来布局组件
from Tkinter import *
root 
= Tk()
# 创建两个Label
Label(root,text = 'Hello').pack()
# 在第一行,第10列放置lb2
Label(root,text = 'Grid').grid(row = 0,column = 10)
# Lable(root,text = '3').grid(row = 0,column = 5)
root.mainloop()
# 这个例子中将lb2放置到第1行,第11列位置上,但运行结果与上一例从效果上看不出太大的区别。原因是:如果这个位置没有组件的话,它是看不可见的。
'''4.将组件放置到预定位置上去'''
# -*- coding: cp936 -*-
#
 使用grid来布局组件
from Tkinter import *
root 
= Tk()
# 创建两个Label
Label(root,text = '1').grid()
# 在第1行,第11列放置lb2
Label(root,text = '2').grid(row = 0,column = 10)
Label(root,text 
= '3').grid(row = 0,column = 5)
root.mainloop()
# 可以看到Label('3')是位置Label('1')和Label('2')之间了,即Label('2')是在11列,Label('3')位于第3列
'''5.将两个或多个组件同一个位置'''
# -*- coding: cp936 -*-
#
 多个组件同时grid到同一个表格位置
from Tkinter import *
root 
= Tk()
# 创建两个Label
lb1 = Label(root,text = '1')
lb2 
= Label(root,text = '2')

# 将lb1和lb2均grid到(0,0)位置
lb1.grid(row = 0,column = 0)
lb2.grid(row 
= 0,column = 0)

def forgetLabel():
    
# grid_slaves返回grid中(0,0)位置的所有组件
    # grid_forget将这个组件从grid中移除(并未删除,可以使用grid再将它显示出来)
    print root.grid_slaves(0,0)[0].grid_forget() 

# 我测试时grid_salves返回的第一个值为lb2,最后grid的那一个    
Button(root,text = 'forget last',command = forgetLabel).grid(row = 1)

root.mainloop()
# 这段代码是用来证明,多个组件同时放置到同一个位置上会产生覆盖的问题。对于grid_slaves返回的组件list如何排序,我没有去查想着资料,在这个例子中使用索引0,返回的正好是lb2,然后再使用grid_forget将这个删除从grid中移除,可以看到lb1显示出来了。
'''6.改变列(行)的属性值'''
# -*- coding: cp936 -*-
#
 设置column的属性(columnconfigure)
from Tkinter import *
root 
= Tk()
# 创建两个Label
lb1 = Label(root,text = '1',bg = 'red')
lb2 
= Label(root,text = '2',bg = 'blue')

# 将lb1和lb2分别放置到第1行的1,2列位置上
lb1.grid(row = 0,column = 0)
lb2.grid(row 
= 0,column = 1)

# 指定列的最小宽度为100
root.columnconfigure(0,minsize = 100)
root.mainloop()
# 1与2的距离变的远一些了。
#
 但如果这个位置没有组件存在的话这个值是不起作用的.
#
 设置列或行(rowconfigure)的属性时使用父容器的方法,不是自己调用。
'''7.组件使用多列(多行)'''
# -*- coding: cp936 -*-
#
 使用多行(多列)
from Tkinter import *
root 
= Tk()
# 创建如下布局(一个字符占用一个grid位置)
#
 A  E
#
 B C
#
 D
#
 A占用(0,0)(0,1),B占用(1,0),C占用(1,1),D占用(2,0),E占用(0,2)
#
 创建5个Label,分别以背景色区别
lbA = Label(root,text = 'A',bg = 'red')
lbB 
= Label(root,text = 'B',bg = 'blue')
lbC 
= Label(root,text = 'C',bg = 'red')
lbD 
= Label(root,text = 'D',bg = 'blue')
lbE 
= Label(root,text = 'E',bg = 'blue')
# 以下为布局参数设置
lbA.grid(row = 0,column = 0,columnspan = 2)
lbB.grid(row 
= 1,column = 0)
lbC.grid(row 
= 1,column = 1)
lbD.grid(row 
= 2)
lbE.grid(row 
= 0,column = 2)

root.mainloop()
# A与B、D的区别,它左边已改变,由于使用了两个表格;
#
 C与E的区别:C的右边与E的左边对齐,也就是说E被放置到第2列的下一个位置了,原因由于A已使用了第2列。
'''8.设置表格中组件的对齐属性'''
# -*- coding: cp936 -*-
#
 使用sticky设置对齐方式
from Tkinter import *
root 
= Tk()
# 创建两个Label
Label(root,text = 'hello sticky').grid()
Label(root,text 
= 'Tkinter').grid()
# 创建两个Label,并指定sticky属性
Label(root,text = 'hello sticky').grid(sticky = W)
Label(root,text 
= 'Tkinter').grid(sticky = W)

root.mainloop()
# 默认属性下,组件的对齐方式为居中,设置sticky属性可以控制对齐方式,可用的值(N,S,E,W)及其组合值

 
Python Tkinter教程(三)——三种几何布局管理器Pack、Place和Grid的所有参数及相关方法及详细用法_python grid 有before Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助! 阅读详情

相关推荐

【tkinter布局管理】grid:网格分布,按行列形式排列

tkinter布局管理器之grid,网格分布,按行列形式排列

nilvya的博客 8880

tkinter的grid布局定位方式图示详解

grid布局方法及参数 以前讲过pack()这种布局定位组件的方法,今天我们来讲另一种类似表格定位方法来布局的方法grid() 以前我们曾用pack()+frame布局定位组件,做出了登录窗体,今天我们用grid()做同样一个登录窗体。 上面这个窗体就是我们要做的,上面画的表格线,是在我们心中画的,实际上窗体上是没有这些线的。画表格的原则是基本上保证一个组件在一个格子里,但有的组件太长,就让它横向占有2个以上的格子(表格框),而有的组件太高,我们就让它占有2个以上的纵向格子(表格框)。 上面的图

hyf64的专栏 1万+

【IOS 开发学习总结-OC-48】★★ios开发之UI控件——UIDatePicker与 UIPickerView

【IOS 开发学习总结-OC-48】★★ios开发之UI控件——UIDatePicker与 UIPickerViewUIDatePicker控件——日期选择器用来选择日期与时间,也可以作为倒计时控件。UIDatePicker继承了 UIControl——可作为活动控件使用,与用户进行交互,既可以在 interface builder,也可以在代码中绑定事件处理方法。 属性面板简要说明: 1. m

Albert的专栏 1406

Python Tkinter Grid布局管理器用法

sticky:有点类似于 pack() 方法的 anchor 选项,同样支持 N(北,代表上)、E(东,代表右)、S(南,代表下)、W(西,代表左)、NW(西北,代表左上)、NE(东北,代表右上)、SW(西南,代表左下)、SE(东南,代表右下)、CENTER(中,默认值)这些值。Grid 把组件空间分解成一个网格进行维护,即按照行、列的方式排列组件,组件位置由其所在的行号和列号决定,行号相同而列号不同的几个组件会被依次上下排列,列号相同而行号不同的几个组件会被依次左右排列。row:指定组件放入哪行。

hakesashou的博客 1246

ROS Navigation global_planner框架解析

ROS Navigation global_planner框架解析主要讲一下我看源码总结的框架,如果大家跟着这个框架看源码的话可能会看的比较快。主要讲解global_planner关键配置参数含义及关键函数Astar,Dijkstra,QuadraticCalculator::calculatePotential,PotentialCalculator::calculatePotential,GridPath::getPath,GradientPath::getPath.

Jeff_Lee_的博客 4693

进芯AVP28335烧录避坑全记录:CCS、Uniflash、C2Prog、SDFlash四大工具配置详解

本文详细解析了进芯AVP28335芯片在烧录过程中遇到的常见问题及解决方案,涵盖CCS、Uniflash、C2Prog和SDFlash四大工具的配置要点。针对国产器件AVP28335的特殊需求,提供了从开发环境准备到烧录验证的全流程指南,帮助开发者高效完成程序烧录,避免常见陷阱。

weixin_30836759的博客 586

iOS学习之UIPickerView控件的关联选择

接上篇iOS学习之UIPickerView控件的简单使用 接着上篇的代码 http://download.youkuaiyun.com/detail/totogo2010/4391870 ,我们要实现的效果如下:当选择左边的一级选项时,左边展示一级选项里含有的二级选项,选择后显示在TextField里。如何实现呢?建立一个和左边的列表key对应的数组,当选择这个key时,刷新左边UIPickerView部分的

空杯子 2万+

从零开始:如何用Python建立你的第一个人工智能模型

在这篇文章中,我们将介绍如何从零开始使用Python建立你的第一个人工智能模型。无论你是刚接触编程的新手,还是有经验的开发者想进一步探索人工智能领域,这篇文章都将为你提供清晰、详细的指南。我们将一步步探索数据预处理、模型建立、训练和测试的过程,以及如何解读模型的结果。

Allen1862105的博客 4万+

IOS学习之UIPickerView控件的关联选择

接上篇iOS学习之UIPickerView控件的简单使用  接着上篇的代码 http://download.youkuaiyun.com/detail/totogo2010/4391870 ,我们要实现的效果如下: 当选择左边的一级选项时,左边展示一级选项里含有的二级选项,选择后显示在TextField里。 如何实现呢?建立一个和左边的列表key对应的数组,当选择这个

212

PD3.0详解 电源规则,全解!!!全解!!!

电源规则 大师匈今天谈一下PD3.0的电源规则,PD3.0标准标定的规则。 USB协议声称,为了世界和平世界环境,让大家用上统一标准的充电器,不用再为每一个用电设备都配一个专门的充电器,这些充电器各种各样的都有,所以有时候大师匈也很烦!!!那么为了维护世界和平,USB协议呢就制订了这个PD快充协议,还有它的规则,只要全世界都用PD,就解决了这个大问题。 在这里先了解一个关键字,PDP: Power Delivery Power PD电源的功率。 每个PD充电产品的功率要以0.5W的精度上报,比如大师匈做的P

大师匈的博客 1万+

【深度学习新浪潮】Token经济学深度解析:从AI“新智元”梗到产业核心,研究成果+标杆产品全拆解

在正式深入研究和产品分析前,必须先破除概念误区:行业内常说的Token经济学,并非单一概念,而是分为AI词元Token经济学和Web3通证Token经济学两大核心分支,二者底层逻辑、应用场景天差地别,也是大众最容易混淆的点。Token是AI时代的新大宗商品:黄仁勋将Token类比为工业时代的电力、石油,是AI时代的核心生产资料与基础计价单位,不再是单纯的技术单元,而是具备标准化、可计量、可交易、可分层的数字商品,其价值由算力消耗、推理效率、实际应用价值共同决定,而非虚拟炒作。Token五层定价模型。

专注:太空算力、AI infra、异构调度、大模型成本工程 685

IOS UIPickerView控件的关联选择

IOS UIPickerView控件的关联选择 建立一个和左边的列表key对应的数组,当选择这个key时,刷新左边UIPickerView部分的内容显示对应数组的数据,选择时,找到两个UIPickerView部件rowIndex,找出数据,放到TextField里。 我们要实现的效果如下: 当选择左边的一级选项时,左边展示一级选项里含有的二级选项,选择后显示在TextFiel

likandmydeer的专栏 1172

【异常】OpenClaw报错 400 Total tokens of image and text exceed max message tokens. Request

OpenClaw报错400(Token超限)解决方案摘要 该报错因文本/图片总Token数超过模型限额导致,常见于多轮对话累积或单次请求过大。提供三级解决方案: 应急处理:输入"/new"指令清空会话历史,立即重置Token计数(90%问题可解决) 折中方案:保留历史对话前提下,通过精简当前输入、删除早期无关对话或拆分请求来压缩Token 专属处理:单次请求超限时,拆分长文本为2000字以内段落,或分批次上传降低分辨率图片 长期预防建议定期使用"/new"开启新会话,

奶爸的编程之路,也就一周冷个三天 1389

iOS之UIPickerView的使用--多列关联选择器

1、.h #import @interface FKViewController : UIViewController<UIPickerViewDataSource, UIPickerViewDelegate> @property (strong, nonatomic) IBOutlet UIPickerView *picker; @end 2、.m #import "FKViewC

yuxikuo_1的专栏 1884

031、速度前馈与加速度前馈

摘要: 本文通过追剪机调试案例,阐述了速度前馈和加速度前馈在运动控制中的关键作用。前馈不是高级技巧,而是解决动态响应问题的必要手段:速度前馈通过预测速度变化提前补偿,加速度前馈则针对惯量变化提供力矩补偿。实现时需注意信号平滑处理,避免噪声放大。前馈与PID分工明确,前馈承担主要动态响应,PID处理残余误差。调试应先调前馈再微调PID,前馈增益需计算而非仅凭参数调整,并允许适当残余误差。前馈作为开环补偿不会影响系统稳定性,但需配合平滑的指令生成器使用。(149字)

m0_50546716的博客 278

27、视网膜血管识别与分类的数据集和验证过程

本文介绍了视网膜血管自动识别与分类方法所使用的数据集及其验证过程。通过30张高分辨率的近红外反射视网膜图像,结合专业医生的手动标注结果,构建了包含597个血管段的基准数据集。研究采用准确率、召回率、F1分数和混淆矩阵等评估指标对模型进行验证,并提出了特征增强和分类器优化策略以提升性能。实验结果显示,该方法在复杂区域具有较强的鲁棒性和较高的准确性,为临床应用提供了可靠的依据。

i7j8k9l的博客 148

ios开发 之 UIPickerView控件,UI关联选择项如何处理

当选择左边的一级选项时,左边展示一级选项里含有的二级选项,选择后显示在TextField里。 如何实现呢?建立一个和左边的列表key对应的数组,当选择这个key时,刷新左边UIPickerView部分的内容显示对应数组的数据,选择时,找到 两个UIPickerView部件rowIndex,找出数据,放到TextField里。 如下图所示: 1、打开上篇PickerViewDemo项目,

机场信息系统研究员的专栏 1372

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

IOS 之 UIPickerView 学习总结

1. UIPickerView 什么时候使用?通常在注册模块,当用户需要选择一些东西的时候使用,比如说城市,往往弹出一个 PickerView 给用户选择。2. UIPickerView 常见用法(1)独立的,没有任何关系 —>菜单系统; (2)相关联的,下一列和第一了有联系 —>省会城市选择; (3)图文并茂,—>国旗选择。3. UIPickerView 数据源方法和代理方法简述首先进入 UI

黄飞的博客专栏 2307

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

UIPickerView控件的关联选择(二)

接上篇iOS学习之UIPickerView控件的简单使用 (一) 我们要实现的效果如下: 1[img] [img]http://dl.iteye.com/upload/attachment/0078/6272/f3ddaf49-ab79-3cd7-9a12-090a8214b356.png[/img] [/img] 当选择左边的一级选项时,左边展示一级选项里含有的二级选项...

阿弥陀佛 147

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 'Tkinter教程之Place篇
下一篇: Tkinter教程之Font篇
jcodeer
博客等级 码龄22年 272粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值