【Python】Label组件 Button组件 Checkbutton组件

Label组件

Label组件是用于在界面上输出描述的标签。


#导入tkinter模块所有内容
from tkinter import *

#创建一个主窗口,可以容纳整个GUI程序
root = Tk()
root.title("hhh")

textLabel = Label(root,text="努力努力再努力!\n努力努力再努力!!\n努力努力再努力!!!"
                  ,justify=LEFT)
#justify选项将文本向左对齐,没有justify则文本是居中对齐

textLabel.pack(side=LEFT)

#创建一个图像Label对象
#用PhotoImage实例化一个图片的对象
photo = PhotoImage(file='C:\\Users\\W\\Desktop\\img.gif')#gif动画在你电脑上的位置,注意是双斜杠

imgLabel = Label(root, image=photo)
imgLabel.pack(side=RIGHT)

root.mainloop()

效果图效果图原gif动画原gif动画

有的时候可能需要将图片和文字分开,例如将图片作为背景,文字显示在图片的上面,只需要设置compound选项即可。

from tkinter import  *

root = Tk()
photo = PhotoImage(file="C:\\Users\\W\\Desktop\\background.gif")

theLable = Label(root,
                 text="努力努力再努力\n努力努力再努力",
                 image=photo,
                 compound=CENTER,#设置文本和图像混合的模式
                 font=("方正姚体",50),#设置字体和字号
                 fg="white")#设置文本颜色
theLable.pack()
mainloop()

效果图效果图

原gif动画

 Button组件

Button组件用于实现一个按钮,它的绝大多数选项和Label组件是一样的。

不过Button组件有一个Label组件实现不了的功能,就是可以接受用户的信息。

Button组件有一个command选项,用于指定一个函数或者方法,当用户单击按钮的时候,Tkinter就会自动地去调用这个函数或者方法。

from tkinter import  *

def callback():
    var.set("努力努力再努力!")

root = Tk()
frame1 = Frame(root)
frame2 = Frame(root)
#创建一个文本label对象
var = StringVar()
var.set("")
textLabel = Label(frame1,
                  textvariable=var,
                  font=("方正姚体",10),
                  justify=LEFT)
textLabel.pack(side=BOTTOM)
#创建一个图像Label对象
#用PhotoImage实例化一个图片对象(支持gif图片格式)
photo = PhotoImage(file="C:\\Users\\W\\Desktop\\img.gif")
imgLabel=Label(frame1,image=photo)
imgLabel.pack(side=RIGHT)
#加一个按钮
theButton = Button(frame2,text="张艺兴",bg='pink',command=callback)
theButton.pack()
frame1.pack(padx=10,pady=10)
frame2.pack(padx=10,pady=10)
mainloop()

点击张艺兴这个按钮后,出现后面那张图

尝试了一下如果把frame2全部删掉,只用frame1,按钮会跑到左上角。

Checkbutton组件

Checkbutton组件就是常见的多选按钮,而Radiobutton则是单选按钮。

from tkinter import *

root = Tk()
#需要一个Tkinter变量,用于表示该按钮是否被选中
v = IntVar()
c = Checkbutton(root,text="测试一下",variable=v)
c.pack()
#如果选项被选中,那么变量的值为1,否则为0
#可以用Label标签动态展示:
l=Label(root,textvariable=v)
l.pack()
mainloop()

     (上面程序结果)(下面程序结果,可以进行多选)

from tkinter import *

root = Tk()
numbers = ["one","two","three","four"]
v=[]
for number in numbers:
    v.append(IntVar())
    b = Checkbutton(root,text=number,variable=v[-1])
    b.pack(anchor=W)#W代表West,不加W或者其他显示位置的缩写,可能会看上去不整齐
mainloop()

猜你喜欢

转载自blog.csdn.net/CSDN___CSDN/article/details/81271139