赞
踩
前面我们说过,Label 组件是用于在界面上输出描述性的标签,例如:提示用户“你所下载的影片含有未成年人限制的内容,请满18周岁后再点击观看!”。我们可以使用 Label 的文本输出功能来简单的实现,但是呢,现在大家基本上都拥有了自动过滤掉不和谐字眼的能力了,所以我们有必要在旁边加一个醒目的图片,试图起到一个警示和震慑的作用,如下图所示:
我们一起动手来实现吧:
- import tkinter as tk
-
- root = tk.Tk()
-
- textLabel = tk.Label(root, text = "你所下载的影片含有未成年人限制的内容,请满18周岁后再点击观看!")
- textLabel.pack()
-
- photo = tk.PhotoImage(file = '18禁.gif')
- imgLabel = tk.Label(root, image = photo)
- imgLabel.pack()
-
- root.mainloop()
运行结果:
貌似实现了,但是不太一样,我们要求的是:文字在左边,图片在右边,我们可以这样修改:
- ...
- textLabel.pack(side ="left" )
-
- ...
- imgLabel.pack(side = "right")
-
- ...
效果如下:(和要求的一模一样)
那还有人要提意见了:“你这文字太长,能不能对文字进行换行?”
可以的,因为 tkinter 的字符串 也是支持 转义字符 \n ,表示换行,因此,我们可以这样修改:
textLabel = tk.Label(root, text = "你所下载的影片含有未成年人限制的内容,\n请满18周岁后再点击观看!")
实现效果如下:
又有人有问题了:“文字应该左对齐,然后跟边框保留一定的间距,比较美观吧!”
没问题,这也是可以实现的。
左对齐 :只需要设置 Label 的 justify 选项就可以了,
justify 用法:
1. 定义如何对齐多行文本
2. 使用 "left","right" 或 "center"
3. 注意,文本的位置取决于 anchor 选项
4. 默认值是 "center"
所以,我们这样修改就可以了:
- textLabel = tk.Label(root, text = "你所下载的影片含有未成年人限制的内容,\n请满18周岁后再点击观看!",
- justify = "left",
- padx = 10)
运行结果如图:
有些时候,你可能不想要图片和文字分开,例如你想把图片作为背景,文字显示在图片上面,那么 Label 组件可以做到吗?
No problem!你只需要简单的设置 compound 选项就可以了。
compound 用法:
1. 控制 Label 中文本和图像的混合模式
2. 默认情况下,如果有指定位图或图片,则不显示文本
3. 如果该选项设置为 "center",文本显示在图像上(文本重叠图像)
4. 如果该选项设置为 "bottom","left","right" 或 "top",那么图像显示在文本的旁边(如 "bottom",则图像在文本的下方)
5. 默认值是 NONE
- import tkinter as tk
-
- root = tk.Tk()
-
- photo = tk.PhotoImage(file = 'bg.gif')
- theLabel = tk.Label(root,
- text = """一剪梅·红藕香残玉簟秋\n李清照 宋 \n
- 红藕香残玉簟秋。轻解罗裳,独上兰舟。\n云中谁寄锦书来,雁字回时,月满西楼。
- 花自飘零水自流。一种相思,两处闲愁。\n此情无计可消除,才下眉头,却上心头。\n""",
- justify = "center",
- image = photo,
- compound = "center",
- font = ("华文行楷", 25),
- fg = "black",
- )
- theLabel.pack(side = "right")
-
- root.mainloop()
运行结果如下:
接下来,我们来讲讲 Botton 组件,Botton 就是按钮,Botton 的绝大多数 选项 都和 Label 是一样的,不过,Bottom 有一个功能,就是可以接收用户的信息,简而言之,Botton 组件就是用于让用户自己说:“干”,然后通过按钮上的文字让用户清楚按下此按钮是干什么用的,相信大家还记得,Botton 组件有一个叫做 command 的选项,用于指定一个函数或者方法,它的作用就是当用户点下这个按钮的时候,tkinter 就会自动调用这个指定的函数或是方法,好了,接下来,我们来修改第一个例子,添加依噶按钮,然后在按钮被按下时,Label 文本发生改变。
OK,想要让文本发生改变,只需要设置一个名为 textvariable 的选项就可以了:
textvariable 用法
1. Label 显示 Tkinter 变量(通常是一个 StringVar 变量)的内容
2. 如果变量被修改,Label 的文本会自动更新
我还是在例子中给大家讲解:
- import tkinter as tk
-
- def callback():
- var.set("吹吧你,我才不信呢!")
-
- root = tk.Tk()
-
- frame1 = tk.Frame(root)
- frame2 = tk.Frame(root)
-
- var = tk.StringVar()
- var.set("你所下载的影片含有未成年人限制的内容,\n请满18周岁后再点击观看!")
-
- textLabel = tk.Label(frame1, textvariable = var, justify = "left")
- textLabel.pack(side = "left")
-
- photo = tk.PhotoImage(file = '18禁.gif')
- imgLabel = tk.Label(frame1, image = photo)
- imgLabel.pack(side = "right")
-
- theButton = tk.Button(frame2, text = "我已满18周岁", command = callback)
- theButton.pack()
-
- frame1.pack(padx = 10, pady = 10)
- frame2.pack(padx = 10, pady = 10)
-
- root.mainloop()
运行结果如下:
点击按钮:
上面就是我们这节课的内容。相信大家现在已经有一个大问题了,这么多选项,你演示这么多,我怎么全部记得住啊,没关系,不要怕,我这里已经给大家准备好了,
Label 组件用法:Tkinter 组件详解(一):Label
Botton 组件用法:Tkinter 组件详解(二):Button
我这里已经把所有选项的用法以及功能都给大家列举出来了,还举了例子,大家随时查阅即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。