Label组件是窗口中比较常用的组件,通常用来添加文字或者图片,并且可以定义Label组件中文字和图片的排列方式,下面进行具体讲解。
视频讲解
视频讲解:资源包\Video\05\5.1.1 Label标签的基本使用.mp4
前面介绍组件的公共属性及布局管理时,多次使用到了Label组件,而Label组件最常用的功能就是添加文字,具体语法如下:
其中,win指定Label组件的父容器;text指定标签中的文本;justify指定标签中拥有多行文本时,最后一行文本的对齐方式。
例如,编写一幅对联,并且对联的横批左对齐,具体代码如下:
运行效果如图5.1所示。
图5.1 Label组件的基本使用
注意
justify属性只对拥有多行文本时的Label组件中的最后一行文本有效,如果Label组件中只有一行文本,则justify属性无效。
说明
上面代码中的第6行,可以拆分为以下两行:
这两种写法所实现的效果相同。
实例位置:资源包\Code\05\01
通过箭头指示斗兽棋游戏规则,首先添加Label组件,显示斗兽棋规则及箭头,然后通过grid()方法设置各组件的位置。具体代码如下:
运行效果如图5.2所示。
图5.2 用箭头指示斗兽棋游戏规则
视频讲解
视频讲解:资源包\Video\05\5.1.2 在Label组件中添加图片.mp4
在tkinter模块中,图片可以在多处使用,例如Label组件、Button按钮及Text文字区域等。但是添加图片时,需要先创建图片对象PhotoImage,然后在其他组件中引入该对象。例如在Label组件中添加一张图片,具体代码如下:
上面代码中,第2行代码中的file参数为图片的路径;第3行代码通过image参数引入该图片对象。运行效果如图5.3所示。
图5.3 在Label组件中添加图片
如果Label组件中既有文字,又有图片,那么可以通过Label组件中的compound参数设置图片与文字的显示位置。可选的参数值有5个,具体参数值及其含义如表5.1所示。
表5.1 compound参数可选值及其含义
实例位置:资源包\Code\08\01
将“欢乐写数字”游戏窗口中的按钮及文本框暂时用Label组件代替。具体代码如下:
运行效果如图5.4所示。
图5.4 Label组件中设置图片与文字的位置效果
说明
实例5.2中添加的图片为.png格式,如果添加.jpg格式的图片,就会出现如图5.5所示错误提示。
图5.5 添加.jpg格式的图片时出现错误提示
这是因为PhotoImage()方法不支持.jpg格式的图片,如果需要在窗口中添加.jpg格式的图片,需要下载和导入第三方模块PIL,安装该模块的命令为“pip install pillow”,具体步骤如下:
(1)以管理员身份打开系统的命令提示符窗口,输入安装命令,如图5.6所示。
图5.6 在命令提示符窗口中输入安装命令
(2)按下<Enter>键,开始进行下载和安装,此过程需要计算机联网。安装成功后如图5.7所示。
图5.7 安装PIL模块成功
安装成功后,需要在.py文件中导入PIL模块中的Image模块和ImageTk模块,具体代码如下:
在窗口中添加一张.jpg格式的图片,代码如下:
运行效果如图5.8所示。
图5.8 在窗口中添加.jpg格式的图片
视频讲解
视频讲解:资源包\Video\05\5.1.3 Label中指定位置换行.mp4
前面都是使用“\n”进行文字换行的,其实Label组件中可以通过wraplength指定换行位置,单位为像素,然后当文本到达wraplength指定的位置时,就会自动换行,具体代码如下:
运行效果如图5.9所示。
图5.9 在Label组件中设置文字在指定位置换行