今天,我们通过几个例子来说说 Lable 和 Button
前面我们说过 lable 组件是用于在界面上输出描述性的标签,比如说提示用户:您说下载的影片含有未成年人限制内容,请满18随后点击观看等等。那么我们可以使用lable组件的文本输出功能来简单的实现,但是呢现在大家基本都有过滤掉不和谐字眼的能力了,所以我们有必要在旁边加一个醒目的图片起到一个警示以及震慑的作用如下图所示:
我们一起来实现吧:
首先根据上节课的知识,可以轻松的创建出窗口和 lable 组件。这里我们因为要载入一张图片,所以要使用新的函数 photo=tk.PhotoImage( file = ‘[填写文件的路径]’ ),之后使用tk.Lable (root,image=pohto)载入。
import tkinter as tk
root = tk.Tk()
root.title('警告!')
textlable = tk.Label(root,text='您说下载的影片含有未成年人限制内容,请满18随后点击观看!',fg='blue')
textlable.pack()
photo=tk.PhotoImage(file=r'D:\Code\Python\Tkinter\1.gif')
imglable = tk.Label(root,image=photo)
imglable.pack()
tk.mainloop()
运行结果如下:
(注意:如果你出现这个错误:couldn’t recognize data in image file,那一定是因为你的图片格式为 .jpg格式,请将图片另存为 .gif 格式。)
但是这个和我们想得到的不太一样,这个时候可以通过更改pack()位置参数来进行更改。
...
textlable.pack(side = 'left')
...
imglable.pack(side = 'right')
...
结果如下:
当然还可以让这句话分成两行 , 只需要在输入文本的地方输入 \n 就行了,因为 tkinter 的字符串允许接收换行符。
textlable = tk.Label(root,text='您说下载的影片含有未成年人限制内容,\n 请满18岁随后点击观看!',fg='blue')
运行结果如下:
这时可能有人会说了文字应该左对齐并且离边框有点距离比较好看把,
左对齐 :只需要设置 Label 的 justify 选项就可以了,
justify 用法:
1. 定义如何对齐多行文本
2. 使用 “left”,“right” 或 “center”
3. 注意,文本的位置取决于 anchor 选项
4. 默认值是 “center”
运行结果如下:
第二个例子
有些时候,你可能不想要图片和文字分开,例如你想把图片作为背景,文字显示在图片上面,那么 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()
root.title('赠汪伦')
photo=tk.PhotoImage(file=r'D:\Code\Python\Tkinter\2.gif')
imglable = tk.Label(root,text=
'''赠汪伦\n
[唐]李白\n
李白乘舟将欲行,\n
忽闻岸上踏歌声。\n
桃花潭水深千尺,\n
不及汪伦送我情。\n''',
justify='center',
fg='black',
image=photo,
compound='center',
font=('华文行楷',20))
imglable.pack(padx=10)
tk.mainloop()
运行结果如下:
接下来,我们来讲讲 Botton 组件,Botton 就是按钮,Botton 的绝大多数 选项 都和 Label 是一样的,不过,Bottom 有一个功能,就是可以接收用户的信息,简而言之,Botton 组件就是用于让用户自己说:“干”,然后通过按钮上的文字让用户清楚按下此按钮是干什么用的,相信大家还记得,Botton 组件有一个叫做 command 的选项,用于指定一个函数或者方法,它的作用就是当用户点下这个按钮的时候,tkinter 就会自动调用这个指定的函数或是方法,好了,接下来,我们来修改第一个例子,添加依噶按钮,然后在按钮被按下时,Label 文本发生改变。
OK,想要让文本发生改变,只需要设置一个名为 textvariable 的选项就可以了:
textvariable 用法
1. Label 显示 Tkinter 变量(通常是一个 StringVar 变量)的内容
2. 如果变量被修改,Label 的文本会自动更新
import tkinter as tk
root = tk.Tk()
root.title('警告!')
frame1 = tk.Frame(root)
frame2 = tk.Frame(root)
def sure() :
var.set('你可吹吧!我不信~')
var = tk.StringVar()
var.set('您所下载的影片含有未成年人限制内容, \n请满18岁后点击观看!')
textlable = tk.Label(frame1,
textvariable=var,
justify='left')
textlable.pack(side = 'left')
photo=tk.PhotoImage(file=r'D:\Code\Python\Tkinter\1.gif')
imglable = tk.Label(frame1,image=photo)
imglable.pack(side = 'right')
button = tk.Button(frame2,text = '我已年满18周岁',command=sure)
button.pack()
frame1.pack(padx=10,pady=10)
frame2.pack(padx=10,pady=10)
tk.mainloop()
运行界面:
点击后界面:
上面就是我们这节课的内容。相信大家现在已经有一个大问题了,这么多选项,你演示这么多,我怎么全部记得住啊,没关系,不要怕,我这里已经给大家准备好了,
Label 组件用法:Tkinter 组件详解(一):Label
Botton 组件用法:Tkinter 组件详解(二):Button
我这里已经把所有选项的用法以及功能都给大家列举出来了,还举了例子,大家随时查阅即可。