码迷,mamicode.com
首页 > 其他好文 > 详细

Tkinter教程之Label篇

时间:2014-09-21 12:31:20      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   os   使用   ar   for   文件   art   

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

#Tkinter教程之Label篇
bubuko.com,布布扣‘‘‘1.Label的第一个例子
bubuko.com,布布扣text属性使用方法
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣#要使用Tk模块,除非你不想使用这个模块,那整个教程就不需要看了
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣#初始化Tk
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣#创建一个label,使用编码,到现在为止还没有使用过直接通过“drag-and-drop”就可以完成的IDE。
bubuko.com,布布扣label = Label(root,text = ‘Hello Tkinter‘)
bubuko.com,布布扣#显示label,必须含有此语句
bubuko.com,布布扣label.pack()
bubuko.com,布布扣#root.pack()
bubuko.com,布布扣#但root是不需要(严格地说是必须不这样使用),否则解释器抱怨
bubuko.com,布布扣#进入消息循环
bubuko.com,布布扣root.mainloop()
bubuko.com,布布扣#控件的显示步骤:
bubuko.com,布布扣#1.创建这个控件
bubuko.com,布布扣#2.指定这个空间的master,即这个控件属于哪一个
bubuko.com,布布扣#3.告诉GM(geometry manager)有一个控件产生了
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣还有更简单的一个例子:将‘Hello Tkinter’打印到标题上,Label也不用创建了
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣root.title(‘hello Tkinter‘)
bubuko.com,布布扣root.mainloop()
bubuko.com,布布扣再没法儿简化了,就这样吧
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣‘‘‘2.在label上使用内置位图
bubuko.com,布布扣bitmap的使用方法
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣#初始化Tk
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣#创建一个label,使用编码,到现在为止还没有使用过直接通过“drag-and-drop”就可以完成的IDE。
bubuko.com,布布扣label = Label(root,bitmap = ‘error‘)
bubuko.com,布布扣#上面的代码使用了内置位图error
bubuko.com,布布扣
bubuko.com,布布扣#显示label,必须含有此语句
bubuko.com,布布扣label.pack()
bubuko.com,布布扣
bubuko.com,布布扣#进入消息循环
bubuko.com,布布扣root.mainloop()
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣其他可用的位图:
bubuko.com,布布扣    * error
bubuko.com,布布扣    * hourglass
bubuko.com,布布扣    * info
bubuko.com,布布扣    * questhead
bubuko.com,布布扣    * question
bubuko.com,布布扣    * warning
bubuko.com,布布扣    * gray12 
bubuko.com,布布扣    * gray25 
bubuko.com,布布扣    * gray50
bubuko.com,布布扣    * gray75
bubuko.com,布布扣若要查看各自的效果,可以使用相应的名称将bitmpa = ‘error‘替换。
bubuko.com,布布扣据说还可以使用自己指定的位图文件,网上找了一下,格式如下:
bubuko.com,布布扣    Label(root, bitmap="@/path/bitmapname")
bubuko.com,布布扣不过我试了一下,从来没有成功过,我已经将位图该为单色的了:(
bubuko.com,布布扣
bubuko.com,布布扣另:还有的网上的文章说明如何使用PhotoImage和BitmapImage显示bmp或gif文件,提到一点
bubuko.com,布布扣防止图像文件被python自动回收(garbage collected),应将bmp或gif放到全局(global)或实体
bubuko.com,布布扣(instance)中,使用如下两种方法,仍未奏效:
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣#使用image属性
bubuko.com,布布扣#    bm = PhotoImage(file = ‘c:/python.gif‘)
bubuko.com,布布扣#    label = Label(root,image = bm)
bubuko.com,布布扣#    label.bm = bm
bubuko.com,布布扣#错误信息:
bubuko.com,布布扣#TclError: image "pyimageXX" doesn‘t exist
bubuko.com,布布扣#使用bitmap属性
bubuko.com,布布扣#    bm = BitmapImage(file=‘c:/python2.bmp‘)
bubuko.com,布布扣#    label = Label(root,bitmap=bm)
bubuko.com,布布扣#    label.bm = bm
bubuko.com,布布扣#    label.pack()
bubuko.com,布布扣#错误信息:
bubuko.com,布布扣#TclError: format error in bitmap data
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣虽然二者均没有起作用,还是要说明一下,bitmap与image的关系,如果同时指定这两参数,image
bubuko.com,布布扣优先。
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣‘‘‘3.改变控件的前景色和背景色
bubuko.com,布布扣fg:前景色
bubuko.com,布布扣bg:背景色
bubuko.com,布布扣设置背景色的一个大的用处是:可以判断控件的大小(不同的控件使用不同的颜色,后续内容
bubuko.com,布布扣可以使用此特性来调试container)
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣#在创建Label时指定各自使用的颜色
bubuko.com,布布扣‘‘‘可以使用的颜色值:‘‘‘
bubuko.com,布布扣#使用颜色名称
bubuko.com,布布扣Label(root,fg = ‘red‘,bg = ‘blue‘,text = ‘Hello I am Tkinter‘).pack()
bubuko.com,布布扣#使用颜色值#RRGGBB
bubuko.com,布布扣Label(root,fg = ‘red‘,bg = ‘#FF00FF‘,text = ‘Hello I am Tkinter‘).pack()
bubuko.com,布布扣#使用系统相关的颜色值(Windows),不建议使用这样的值,不利于平台移植
bubuko.com,布布扣Label(root,fg = ‘red‘,bg = ‘SystemButtonShadow‘,text = ‘Hello I am Tkinter‘).pack()
bubuko.com,布布扣root.mainloop()
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣(1).使用颜色名称
bubuko.com,布布扣Red
bubuko.com,布布扣Green
bubuko.com,布布扣Blue
bubuko.com,布布扣Yellow
bubuko.com,布布扣LightBlue
bubuko.com,布布扣......
bubuko.com,布布扣(2).使用#RRGGBB
bubuko.com,布布扣label = Label(root,fg = ‘red‘,bg = ‘#FF00FF‘,text = ‘Hello I am Tkinter‘)
bubuko.com,布布扣指定背景色为绯红色
bubuko.com,布布扣(3).除此之外,Tk还支持与OS相关的颜色值,如Windows支持
bubuko.com,布布扣SystemActiveBorder, 
bubuko.com,布布扣SystemActiveCaption, 
bubuko.com,布布扣SystemAppWorkspace, 
bubuko.com,布布扣SystemBackground,
bubuko.com,布布扣......
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣‘‘‘4.设置宽度与高度
bubuko.com,布布扣width:    宽度
bubuko.com,布布扣height:    高度
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣#创建三个Label,分别显示red,blue,yellow
bubuko.com,布布扣#注意三个Label的大小,它们均与文本的长度有关
bubuko.com,布布扣Label(root,text = ‘red‘,bg = ‘red‘).pack()
bubuko.com,布布扣Label(root,text = ‘blue‘,bg = ‘blue‘).pack()
bubuko.com,布布扣Label(root,text = ‘yellow‘,bg = ‘yellow‘).pack()
bubuko.com,布布扣
bubuko.com,布布扣#再创建三个Label,与上次不同的是这三个Label均使用width和heigth属性
bubuko.com,布布扣#三个Label的大小由width和height指定
bubuko.com,布布扣Label(root,bg = ‘red‘,width = 10,height = 3).pack()
bubuko.com,布布扣Label(root,bg = ‘blue‘,width = 10,height = 3).pack()
bubuko.com,布布扣Label(root,bg = ‘yellow‘,width = 10,height = 3).pack()
bubuko.com,布布扣root.mainloop()
bubuko.com,布布扣‘‘‘5.同时使用图像与文本
bubuko.com,布布扣compound:    指定文本(text)与图像(bitmap/image)是如何在Label上显示,缺省为None,
bubuko.com,布布扣当指定image/bitmap时,文本(text)将被覆盖,只显示图像了。可以使用的值:
bubuko.com,布布扣    left:    图像居左
bubuko.com,布布扣    right:    图像居右
bubuko.com,布布扣    top:    图像居上
bubuko.com,布布扣    bottom:图像居下
bubuko.com,布布扣    center:文字覆盖在图像上
bubuko.com,布布扣bitmap/image:
bubuko.com,布布扣    显示在Label上的图像
bubuko.com,布布扣text:
bubuko.com,布布扣    显示在Label上的文本
bubuko.com,布布扣label = Label(root,text = ‘Error‘,compound = ‘left‘,bitmap = ‘error‘)
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣#演示compound的使用方法
bubuko.com,布布扣#图像与文本在Label中的位置
bubuko.com,布布扣#图像居下
bubuko.com,布布扣Label(root,text = ‘botton‘,compound = ‘bottom‘,bitmap = ‘error‘).pack()
bubuko.com,布布扣#图像居上
bubuko.com,布布扣Label(root,text = ‘top‘,compound = ‘top‘,bitmap = ‘error‘).pack()
bubuko.com,布布扣#图像居右
bubuko.com,布布扣Label(root,text = ‘right‘,compound = ‘right‘,bitmap = ‘error‘).pack()
bubuko.com,布布扣#图像居左
bubuko.com,布布扣Label(root,text = ‘left‘,compound = ‘left‘,bitmap = ‘error‘).pack()
bubuko.com,布布扣#文字覆盖在图像上
bubuko.com,布布扣Label(root,text = ‘center‘,compound = ‘center‘,bitmap = ‘error‘).pack()
bubuko.com,布布扣
bubuko.com,布布扣#消息循环
bubuko.com,布布扣root.mainloop()
bubuko.com,布布扣
bubuko.com,布布扣‘‘‘6.文本的多行显示
bubuko.com,布布扣在Tk004中,使用width和heigth来指定控件的大小,如果指定的大小无法满足文本的要求是,会出现
bubuko.com,布布扣什么现象呢?如下代码:
bubuko.com,布布扣    Label(root,bg = ‘welcome to jcodeer.cublog.cn‘,width = 10,height = 3).pack()
bubuko.com,布布扣运行程序,超出Label的那部分文本被截断了,常用的方法是:使用自动换行功能,及当文本长度大于
bubuko.com,布布扣控件的宽度时,文本应该换到下一行显示,Tk不会自动处理,但提供了属性:
bubuko.com,布布扣wraplength:    指定多少单位后开始换行
bubuko.com,布布扣justify:        指定多行的对齐方式
bubuko.com,布布扣ahchor:        指定文本(text)或图像(bitmap/image)在Label中的显示位置
bubuko.com,布布扣可用的值:
bubuko.com,布布扣e
bubuko.com,布布扣w
bubuko.com,布布扣n
bubuko.com,布布扣s
bubuko.com,布布扣ne
bubuko.com,布布扣se
bubuko.com,布布扣sw
bubuko.com,布布扣sn
bubuko.com,布布扣center
bubuko.com,布布扣布局如下图
bubuko.com,布布扣
bubuko.com,布布扣                nw        n        ne
bubuko.com,布布扣                w      center    e
bubuko.com,布布扣                sw        s        se
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣#左对齐,文本居中
bubuko.com,布布扣Label(root,text = ‘welcome to jcodeer.cublog.cn‘,bg = ‘yellow‘,width = 40,height = 3,wraplength = 80,justify = ‘left‘).pack()
bubuko.com,布布扣#居中对齐,文本居左
bubuko.com,布布扣Label(root,text = ‘welcome to jcodeer.cublog.cn‘,bg = ‘red‘,width = 40,height = 3,wraplength = 80,anchor = ‘w‘).pack()
bubuko.com,布布扣#居中对齐,文本居右
bubuko.com,布布扣Label(root,text = ‘welcome to jcodeer.cublog.cn‘,bg = ‘blue‘,width = 40,height = 3,wraplength = 80,anchor = ‘e‘).pack()
bubuko.com,布布扣
bubuko.com,布布扣root.mainloop()
bubuko.com,布布扣
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣运行一下程序就可以直观的看出,justify与anchor的区别了:一个用于控制多行的对齐;另一个用于
bubuko.com,布布扣控制整个文本块在Label中的位置
bubuko.com,布布扣‘‘‘

Tkinter教程之Label篇

标签:blog   http   io   os   使用   ar   for   文件   art   

原文地址:http://www.cnblogs.com/LeeZz/p/3984291.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!