小白学tkinter(Label(标签)组件)

from tkinter import *
root = Tk()
root.title('NoteBook')
 #用PhotoImage()实例化一个图像对象,参数是文件地址,可惜这能用gif图片
photo = PhotoImage(file = 'timg.gif')
the_Label = Label(root,text = '这是一只睡觉的小猫,\n王晓明看傻了!',
                  justify = LEFT, #左对齐,我的理解是如果出现两行以上,可以都让他们左对齐
                  image = photo,
                  compound = CENTER, #设置文本和图像的混合模式
                  font = ('黑体',10), #注意字体和字号用元组的形式
                  fg = 'black') #前景颜色
the_Label.pack(side = LEFT)
root.mainloop()

'''
                  compound:同时使用图像与文本, 指定文本(text)与图像
                  (bitmap/image)是如何在Label上显示,缺省为None, 
                  当指定image/bitmap时,文本(text)将被覆盖,只显示图像了。可以使用的值: 
                  left:    图像居左 
                  right:    图像居右 
                  top:     图像居上 
                  bottom:  图像居下 
                  center:文字覆盖在图像上
                  '''

文本的多行显示


在Tk中,使用width和heigth来指定控件的大小,如果指定的大小无法满足文本的要求是,会出现什么现象呢?如下代码:
    Label(root,bg = 'welcome to jcodeer.cublog.cn',width = 10,height = 3).pack()
运行程序,超出Label的那部分文本被截断了,常用的方法是:使用自动换行功能,及当文本长度大于控件的宽度时,文本应该换到下一行显示,Tk不会自动处理,但提供了属性:
wraplength:    指定多少单位后开始换行
justify:        指定多行的对齐方式
ahchor:        指定文本(text)或图像(bitmap/image)在Label中的显示位置
可用的值:
e
w
n
s
ne
se
sw
sn
center
布局如下图

                nw        n        ne
                w      center    e
                sw        s        se
'''
from Tkinter import *
root = Tk()
#左对齐,文本居中
Label(root,text = 'welcome to jcodeer.cublog.cn',bg = 'yellow',width = 40,height = 3,wraplength = 80,justify = 'left').pack()
#居中对齐,文本居左
Label(root,text = 'welcome to jcodeer.cublog.cn',bg = 'red',width = 40,height = 3,wraplength = 80,anchor = 'w').pack()
#居中对齐,文本居右
Label(root,text = 'welcome to jcodeer.cublog.cn',bg = 'blue',width = 40,height = 3,wraplength = 80,anchor = 'e').pack()

root.mainloop()

'''
运行一下程序就可以直观的看出,justify与anchor的区别了:一个用于控制多行的对齐;另一个用于
控制整个文本块在Label中的位置
'''

常用属性
属性名称 属性含义
anchor 指示文字会被放在控件的什么位置, 可选项有 N, NE, E, SE, S, SW, W, NW, CENTER. 默认为 CENTER.
aspect 控件的宽高比, 即 width/height , 以百分比形式表示. 默认为 150, 即 Message 控件宽度比其高度大 50%. 注意: 如果显式的指定了控件宽度, 则该属性将被忽略.
background 控件的背景色. 默认值为当前窗口系统的默认背景色.
bg 同 background.
borderwidth 边框宽度. 默认为2.
bd 同 borderwidth.
cursor 定义鼠标移动到 Message 上时的光标样式. 默认为系统标准样式.
font 文字字体. 默认为当前系统默认.
foreground 文字颜色. 默认为当前系统默认.
fg 同 foreground
highlightbackground 和 highlightcolor, highlightthickness 这两个属性一起指定了控件如何绘制高亮区域.
highlightcolor 参考 highlightbackground.
highlightthickness 参考 highlightbackground.
justify 指示多行文本如何对齐. 可选项为 LEFT, RIGHT, CENTER. 默认为 LEFT. 注意: 该属性指示文字对齐方式. 如果要指定文字在控件内的位置, 请使用 anchor 属性.
padx 水平方向的边距. 默认为 -1, 即无边距.
pady 垂直方向的边距. 默认为 -1, 即无边距.
relief 边框样式. 默认为 FLAT. 其他可选项为 SUNKEN, RAISED, GROOVE, RIDGE.
takefocus 如果设置为 True, 控件将可以获取焦点. 默认为 False.
text 文字内容. 控件将根据宽度自动对文字进行断行.
textvariable 关联一个 Tkinter variable 对象, 通常为 StringVar 对象. 控件文本将在该对象改变时跟着改变.
width 控件宽度, 单位为 charater units (不是像素). 如果未指定该选项, 将根据 aspect 属性自动设置宽度.

你可能感兴趣的:(Tkinter学习)