Tkinter教程之Grid篇

时间:2022-10-14 09:25:31

本文转载自:http://blog.csdn.net/jcodeer/article/details/1813196

'''Tkinter教程之Grid篇'''
Tkinter教程之Grid篇# Tkinter参考中最推荐使用的一个布局器。实现机制是将Widget逻辑上分割成表格,在指定的位置放置想要的Widget就可以了。
Tkinter教程之Grid篇'''1.第一个Grid例子'''
Tkinter教程之Grid篇# -*- coding: cp936 -*-
Tkinter教程之Grid篇# 使用grid来布局组件
Tkinter教程之Grid篇from Tkinter import *
Tkinter教程之Grid篇root = Tk()
Tkinter教程之Grid篇# 创建两个Label
Tkinter教程之Grid篇lb1 = Label(root,text = 'Hello')
Tkinter教程之Grid篇lb2 = Label(root,text = 'Grid')
Tkinter教程之Grid篇
Tkinter教程之Grid篇lb1.grid()
Tkinter教程之Grid篇lb2.grid()
Tkinter教程之Grid篇
Tkinter教程之Grid篇root.mainloop()
Tkinter教程之Grid篇# grid有两个最为重要的参数,用来指定将组件放置到什么位置,一个是row,另一个是column。如果不指定row,会将组件放置到第一个可用的行上,如果不指定column,则使用第一列。
Tkinter教程之Grid篇'''2.使用row和column来指定位置'''
Tkinter教程之Grid篇# -*- coding: cp936 -*-
Tkinter教程之Grid篇# 使用grid来布局组件
Tkinter教程之Grid篇from Tkinter import *
Tkinter教程之Grid篇root = Tk()
Tkinter教程之Grid篇# 创建两个Label
Tkinter教程之Grid篇lb1 = Label(root,text = 'Hello')
Tkinter教程之Grid篇lb2 = Label(root,text = 'Grid')
Tkinter教程之Grid篇
Tkinter教程之Grid篇lb1.grid()
Tkinter教程之Grid篇# 指定lb2为第一行(使用索引0开始),第二列(使用索引0开始)
Tkinter教程之Grid篇lb2.grid(row = 0,column = 1)
Tkinter教程之Grid篇
Tkinter教程之Grid篇root.mainloop()
Tkinter教程之Grid篇# grid有两个最为重要的参数,用来指定将组件放置到什么位置,一个是row,另一个是column。如果不指定row,会将组件放置到第一个可用的行上,如果不指定column,则使用第一列。注意这里使用grid时不需要创建,直接使用行列就可以。
Tkinter教程之Grid篇'''3.为其它组件预定位置'''
Tkinter教程之Grid篇# 可以使用row/column来指定组件的放置位置,并预先留出空间,以务其它需要。
Tkinter教程之Grid篇# -*- coding: cp936 -*-
Tkinter教程之Grid篇# 使用grid来布局组件
Tkinter教程之Grid篇from Tkinter import *
Tkinter教程之Grid篇root = Tk()
Tkinter教程之Grid篇# 创建两个Label
Tkinter教程之Grid篇Label(root,text = 'Hello').pack()
Tkinter教程之Grid篇# 在第一行,第10列放置lb2
Tkinter教程之Grid篇Label(root,text = 'Grid').grid(row = 0,column = 10)
Tkinter教程之Grid篇# Lable(root,text = '3').grid(row = 0,column = 5)
Tkinter教程之Grid篇root.mainloop()
Tkinter教程之Grid篇# 这个例子中将lb2放置到第1行,第11列位置上,但运行结果与上一例从效果上看不出太大的区别。原因是:如果这个位置没有组件的话,它是看不可见的。
Tkinter教程之Grid篇'''4.将组件放置到预定位置上去'''
Tkinter教程之Grid篇# -*- coding: cp936 -*-
Tkinter教程之Grid篇# 使用grid来布局组件
Tkinter教程之Grid篇from Tkinter import *
Tkinter教程之Grid篇root = Tk()
Tkinter教程之Grid篇# 创建两个Label
Tkinter教程之Grid篇Label(root,text = '1').grid()
Tkinter教程之Grid篇# 在第1行,第11列放置lb2
Tkinter教程之Grid篇Label(root,text = '2').grid(row = 0,column = 10)
Tkinter教程之Grid篇Label(root,text = '3').grid(row = 0,column = 5)
Tkinter教程之Grid篇root.mainloop()
Tkinter教程之Grid篇# 可以看到Label('3')是位置Label('1')和Label('2')之间了,即Label('2')是在11列,Label('3')位于第3列
Tkinter教程之Grid篇'''5.将两个或多个组件同一个位置'''
Tkinter教程之Grid篇# -*- coding: cp936 -*-
Tkinter教程之Grid篇# 多个组件同时grid到同一个表格位置
Tkinter教程之Grid篇from Tkinter import *
Tkinter教程之Grid篇root = Tk()
Tkinter教程之Grid篇# 创建两个Label
Tkinter教程之Grid篇lb1 = Label(root,text = '1')
Tkinter教程之Grid篇lb2 = Label(root,text = '2')
Tkinter教程之Grid篇
Tkinter教程之Grid篇# 将lb1和lb2均grid到(0,0)位置
Tkinter教程之Grid篇lb1.grid(row = 0,column = 0)
Tkinter教程之Grid篇lb2.grid(row = 0,column = 0)
Tkinter教程之Grid篇
Tkinter教程之Grid篇def forgetLabel():
Tkinter教程之Grid篇    # grid_slaves返回grid中(0,0)位置的所有组件
Tkinter教程之Grid篇    # grid_forget将这个组件从grid中移除(并未删除,可以使用grid再将它显示出来)
Tkinter教程之Grid篇    print root.grid_slaves(0,0)[0].grid_forget() 
Tkinter教程之Grid篇
Tkinter教程之Grid篇# 我测试时grid_salves返回的第一个值为lb2,最后grid的那一个    
Tkinter教程之Grid篇Button(root,text = 'forget last',command = forgetLabel).grid(row = 1)
Tkinter教程之Grid篇
Tkinter教程之Grid篇root.mainloop()
Tkinter教程之Grid篇# 这段代码是用来证明,多个组件同时放置到同一个位置上会产生覆盖的问题。对于grid_slaves返回的组件list如何排序,我没有去查想着资料,在这个例子中使用索引0,返回的正好是lb2,然后再使用grid_forget将这个删除从grid中移除,可以看到lb1显示出来了。
Tkinter教程之Grid篇'''6.改变列(行)的属性值'''
Tkinter教程之Grid篇# -*- coding: cp936 -*-
Tkinter教程之Grid篇# 设置column的属性(columnconfigure)
Tkinter教程之Grid篇from Tkinter import *
Tkinter教程之Grid篇root = Tk()
Tkinter教程之Grid篇# 创建两个Label
Tkinter教程之Grid篇lb1 = Label(root,text = '1',bg = 'red')
Tkinter教程之Grid篇lb2 = Label(root,text = '2',bg = 'blue')
Tkinter教程之Grid篇
Tkinter教程之Grid篇# 将lb1和lb2分别放置到第1行的1,2列位置上
Tkinter教程之Grid篇lb1.grid(row = 0,column = 0)
Tkinter教程之Grid篇lb2.grid(row = 0,column = 1)
Tkinter教程之Grid篇
Tkinter教程之Grid篇# 指定列的最小宽度为100
Tkinter教程之Grid篇root.columnconfigure(0,minsize = 100)
Tkinter教程之Grid篇root.mainloop()
Tkinter教程之Grid篇# 1与2的距离变的远一些了。
Tkinter教程之Grid篇# 但如果这个位置没有组件存在的话这个值是不起作用的.
Tkinter教程之Grid篇# 设置列或行(rowconfigure)的属性时使用父容器的方法,不是自己调用。
Tkinter教程之Grid篇'''7.组件使用多列(多行)'''
Tkinter教程之Grid篇# -*- coding: cp936 -*-
Tkinter教程之Grid篇# 使用多行(多列)
Tkinter教程之Grid篇from Tkinter import *
Tkinter教程之Grid篇root = Tk()
Tkinter教程之Grid篇# 创建如下布局(一个字符占用一个grid位置)
Tkinter教程之Grid篇# A  E
Tkinter教程之Grid篇# B C
Tkinter教程之Grid篇# D
Tkinter教程之Grid篇# A占用(0,0)(0,1),B占用(1,0),C占用(1,1),D占用(2,0),E占用(0,2)
Tkinter教程之Grid篇# 创建5个Label,分别以背景色区别
Tkinter教程之Grid篇lbA = Label(root,text = 'A',bg = 'red')
Tkinter教程之Grid篇lbB = Label(root,text = 'B',bg = 'blue')
Tkinter教程之Grid篇lbC = Label(root,text = 'C',bg = 'red')
Tkinter教程之Grid篇lbD = Label(root,text = 'D',bg = 'blue')
Tkinter教程之Grid篇lbE = Label(root,text = 'E',bg = 'blue')
Tkinter教程之Grid篇# 以下为布局参数设置
Tkinter教程之Grid篇lbA.grid(row = 0,column = 0,columnspan = 2)
Tkinter教程之Grid篇lbB.grid(row = 1,column = 0)
Tkinter教程之Grid篇lbC.grid(row = 1,column = 1)
Tkinter教程之Grid篇lbD.grid(row = 2)
Tkinter教程之Grid篇lbE.grid(row = 0,column = 2)
Tkinter教程之Grid篇
Tkinter教程之Grid篇root.mainloop()
Tkinter教程之Grid篇# A与B、D的区别,它左边已改变,由于使用了两个表格;
Tkinter教程之Grid篇# C与E的区别:C的右边与E的左边对齐,也就是说E被放置到第2列的下一个位置了,原因由于A已使用了第2列。
Tkinter教程之Grid篇'''8.设置表格中组件的对齐属性'''
Tkinter教程之Grid篇# -*- coding: cp936 -*-
Tkinter教程之Grid篇# 使用sticky设置对齐方式
Tkinter教程之Grid篇from Tkinter import *
Tkinter教程之Grid篇root = Tk()
Tkinter教程之Grid篇# 创建两个Label
Tkinter教程之Grid篇Label(root,text = 'hello sticky').grid()
Tkinter教程之Grid篇Label(root,text = 'Tkinter').grid()
Tkinter教程之Grid篇# 创建两个Label,并指定sticky属性
Tkinter教程之Grid篇Label(root,text = 'hello sticky').grid(sticky = W)
Tkinter教程之Grid篇Label(root,text = 'Tkinter').grid(sticky = W)
Tkinter教程之Grid篇
Tkinter教程之Grid篇root.mainloop()
Tkinter教程之Grid篇# 默认属性下,组件的对齐方式为居中,设置sticky属性可以控制对齐方式,可用的值(N,S,E,W)及其组合值

Tkinter教程之Grid篇的更多相关文章

  1. Tkinter教程之Event篇(3)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1823550 '''Tkinter教程之Event篇(3)''''''11.两个事件同时绑定到一 ...

  2. Tkinter教程之Event篇(2)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1823548 '''Tkinter教程之Event篇(2)''''''5.测试离开(Leave) ...

  3. Tkinter教程之Event篇(1)'

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1823544 ''Tkinter教程之Event篇(1)'''# 事件的使用方法'''1.测试鼠 ...

  4. Tkinter教程之Canvas篇(2)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811888 '''Tkinter教程之Canvas篇(2)''''''9.创建item的tag ...

  5. Tkinter教程之Pack篇

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1813077 '''Tkinter教程之Pack篇'''#Pack为一布局管理器,可将它视为一个 ...

  6. Tkinter教程之Canvas篇(4)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1812091 '''Tkinter教程之Canvas篇(4)''''''22.绘制弧形'''#  ...

  7. Tkinter教程之Canvas篇(3)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811922 ''Tkinter教程之Canvas篇(3)''''''16.移动item'''# ...

  8. Tkinter教程之Canvas篇(1)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811803 '''Tkinter教程之Canvas篇(1)'''# 提供可以用来进行绘图的Co ...

  9. Tkinter教程之Text篇(3)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811348 '''Tkinter教程之Text篇(3)''''''14.自定义tag的两个内置 ...

随机推荐

  1. Linux Shell脚本逻辑操作符简介

    在写程序时,会用到条件判断,测试条件是否成立.很多时候,判断条件是多个的,这个时候需要用到逻辑操作符.shell脚本中常用的有哪些逻辑操作符呢? 1.逻辑与: -a 格式: conditon1 -a ...

  2. python 学习笔记十六 django深入学习一 路由系统,模板,admin,数据库操作

    django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ ...

  3. SVN代码回滚命令之---merge的使用

    一.改动还没被提交的情况(未commit) 这种情况下,见有的人的做法是删除work copy中文件,然后重新update,恩,这种做法达到了目的,但不优雅,因为这种事没必要麻烦服务端. 其实一个命令 ...

  4. HTML5新特性之WebNotifications

    Web Notifications是HTML5中一个令人欣喜的新特性,它支持开发者配置和显示桌面通知,为用户提供更好的体验,最令人称赞的是,即使用户忙于其他工作时也可以收到来自页面的消息通知,例如一个 ...

  5. ExtJs4.2 知识点

    知识点1:修改密码类 参考:点击这里 Ext.apply(Ext.form.VTypes, { password: function (val, field) { if (field.initialP ...

  6. Xamarin 开发常见问题

    原文:Xamarin 开发常见问题 Verify the project is selected to be deployed in the Solution Configuration Manage ...

  7. CSDN markdown 编辑器 第四篇 LaTex语法

    Latex是为了写数学公式的. 嗯-但实际这样的语言的作用是为了排版的.数学公式仅仅是他的附加属性. 可是markdown引入这个全然是为了写公式.其它的Latex语法不支持. CSDN markdo ...

  8. spring 中StoredProcedure的使用方法

    StoredProcedure是一个抽象类,必须写一个子类来继承它,这个类是用来简化JDBCTemplate运行存储过程操作的. 首先我们写一个实现类: package com.huaye.frame ...

  9. 关于写作那些事之利用 js 统计各大博客阅读量

    在日常文章数据统计的过程中,纯手动方式已经难以应付,于是乎,逐步开始了程序介入方式进行统计. 在上一节中,探索利用 csv 文件格式进行文章数据统计,本来以为能够应付一阵子,没想到仅仅一天我就放弃了. ...

  10. Win 10 启用Linux子系统---Kali 和Ubuntu子系统

    注:转载请注明出处,谢谢!!! 一.Linux on Windows简介 Win10一周年版推出了用于Windows的Linux子系统这一功能.Linux子系统和Windows的结合真是有一种神互补. ...