GUI的最终选择 Tkinter:Label和Button组件

Posted pinpin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GUI的最终选择 Tkinter:Label和Button组件相关的知识,希望对你有一定的参考价值。

Label组件

Lable组件是用于界面上输出描述的标签,例如提示用户“您下载的电影含有未成年人限制内容,请满18岁以后点击观看!”,先来上结果图:

技术分享图片

在来看下它的代码:

from tkinter import *

root = Tk()
#创建一个文本Label对象
textLable = Label(root,                  text=您所下载的影片含有未成年限制内容,
请满18岁再查看)
textLable.pack(side=LEFT)
photo = PhotoImage(file=18.gif)
imglable = Label(root,image=photo)
imglable.pack(side=RIGHT)
mainloop()

 显示不太好看,所以我们修改下,在字符串中使用 对显示的文本进行换行

技术分享图片

如果想将文字部分左对齐,并在水平位置与边框留有距离,只要设置Label的justify和padx选项即可。

技术分享图片

 完整代码如下:

from tkinter import *

root = Tk()
#创建一个文本Label对象
textLable = Label(root,                  text=您所下载的影片含有未成年限制内容,
请满18岁再查看,                  justify=LEFT,                   padx=10)
textLable.pack(side=LEFT)
photo = PhotoImage(file=18.gif)
imglable = Label(root,image=photo)
imglable.pack(side=RIGHT)
mainloop()

这是图片和文字分开的,但是有时候需要文字显示在图片的上面,那么我们只需要设置compound选项即可。

 1 from tkinter import *
 2 
 3 root = Tk()
 4 photo = PhotoImage(file=bg.gif)
 5 thelable = Label(root,
 6                  text = study python,
 7                  justify=LEFT,
 8                  image= photo,
 9                  compound=CENTER,
10                  font=(宋体,20),
11                  fg=white)
12 thelable.pack()
13 mainloop()

结果图:

技术分享图片

Button组件

Button组件是用于实现一个按钮,它的绝大多数选项和Label组件是一样的,不过Button组件有一个Label组件实现不了的功能,那就是可以接收用户的信息。Button组件有一个command选项,用于指定一个函数或方法,当用户单击按钮的时候,Tkinter就会自动地调用这个函数或方法。

来我们修改上面的Label的那个例子,增加一个按钮,在按钮被单击后Label文本发生改变。想要文本发生改变,只需要设置textvariable选项为Tkinter变量即可:

 1 #
 2 from tkinter import *
 3 
 4 def callback():
 5     var.set(我才不信了,骗子)
 6 
 7 root = Tk()
 8 frame1 = Frame(root)
 9 frame2 = Frame(root)
10 var = StringVar()
11 var.set(您所下载的影片含有未成年限制内容,
请满18岁再查看)
12 textLable = Label(frame1,
13                   textvariable=var,
14                   justify=LEFT)
15 textLable.pack(side=LEFT)
16 
17 photo = PhotoImage(file=18.gif)  #用PhotoImage实例化一个图片对象,注:支持gif的
18 imglable = Label(root,image=photo)  #创建一个图像Label的对象
19 imglable.pack(side=RIGHT)
20 
21 theButton = Button(frame2,text=我已经满18岁,command=callback) #增加一个按钮
22 theButton.pack()
23 
24 frame1.pack(padx=10,pady=10)
25 frame2.pack(padx=10,pady=10)
26 mainloop()

结果如下:我这里放两张图片了

技术分享图片技术分享图片

 

以上是关于GUI的最终选择 Tkinter:Label和Button组件的主要内容,如果未能解决你的问题,请参考以下文章

GUI的最终选择 Tkinter:Canvas组件

GUI的最终选择Tkinter模块初级篇

GUI的最终选择Tkinter模块练习篇

GUI篇 tkinter (Label,Button)之一

使用 Tkinter 制作文件选择器 GUI 以显示输入和输出文件

Python的标准GUI:Tkinter的组件