Label 组件用于在界面上输出描述性的标签,这可以使用 Label 组件的文本输出功能来简单实现。
但是 Label 组件还可以显示图片,下面是一个关于这个的例子:
注意:PhotoImage() 方法传入的图片只支持 .gif 格式的
from tkinter import * #把Tkinter模块里所有的东西都导进来了 root = Tk() textLabel = Label(root, text='可爱小猫', justify=LEFT, padx=10) #在字符串里面加上\n可以分两行显示 #justify选项可以设置左对齐,右对齐。默认是CENTER居中 #padx设置距离左边界的距离 textLabel.pack(side=LEFT) photo = PhotoImage(file=r"C:\image\cat_200_200.gif") #实例化PhotoImage就可以得到一个图片对象.传入想要的图片路径就可以了,只支持GIF imgLabel = Label(root, image=photo) #image的值是tkinter的图片对象 imgLabel.pack(side=RIGHT) mainloop()有些时候,我们并不希望图片和文字分开。比如说想将图片作为背景,文字显示在图片的上面。这只用设置 Label 组件的 compound 属性就可以了。
from tkinter import * root = Tk() photo = PhotoImage(file=r"C:\image\cat_200_200.gif") theLabel = Label(root, text="好好学习\n天天向上", justify=LEFT, image=photo, compound=CENTER, #混合属性 font=("宋体", 20), #设置字体,直接写字体的名字就行,后面的20是字号,即字体大小 fg="white") theLabel.pack() mainloop()
Button 组件的绝大多数选项是和 Label 一样的,不过 Button 有一个功能就是接受用户的信息。Button 组件可以通过按钮上的文字和图标告诉用户按下去会发生什么,有什么功能。
Button 组件有一个叫做 command 的选项,用于指定一个函数或者方法。当用户点下按钮的时候,tkinter 就会自动的去调取这个函数或者方法。
修改第一个例子,添加一个按钮,在按钮被按下的时候将 Label 文本改变。
想要文本发生改变,只需要设置一个 textvariable 的选项就可以了。
from tkinter import * def callback(): var.set('可爱小狗') root = Tk() frame1 = Frame(root) frame2 = Frame(root) var = StringVar() #实例化一个StringVar(),得到一个tkinter的变量 var.set('可爱小猫') #设置var的内容 textLabel = Label(frame1, #放在框架一上 textvariable=var, #改变原来的text选项,原来的text选项只能显示一个字符串,而textvariable可以显示一个变量,这个变量必须是tkinter的变量,tkinter的字符串变量叫做StringVar justify=LEFT) textLabel.pack(side=LEFT) photo = PhotoImage(file=r"C:\image\cat_200_200.gif") imgLabel = Label(root, image=photo) imgLabel.pack(side=RIGHT) theButton = Button(frame2, text='点击改变Label的文字', command=callback) theButton.pack() frame1.pack(padx=10, pady=10) frame2.pack(padx=10, pady=10) mainloop()