用Tkinter打造GUI开发工具(14)Tkinter小部件的Label标签部件
标签Label部件是Tkinter最常用的部件之一,其语法格式如下。

label=tk.Label ( master, option, ... )

master 参数为其父组件,就是用来放置这个部件的。 像其它部件一样,我们可以在创建部件之后再为其指定属性。因此创建方法中的 options 选项参数可以为空。
首先看Label部件的参数options见表 Label部件的参数options。


Label部件的使用简单,我们前面程序中见过。其中参数anchor、 bg、 fg 、borderwidth、 cursor、 height、 width、 relief、 padx、 pady等都多次介绍,而且给了对比程序。而且这类属性对多数部件来说都是通用的。

我们就不再重复介绍了,主要介绍每个部件的特有属性。下面看一个关于Label部件的演示,程序中给出了详细的注释说明。

# -*- coding: utf-8 -*-
import  tkinter  as  tk  #导入Tkinter3模块#移动窗口到屏幕中央
def setCenter(root,w,h):ws = root.winfo_screenwidth()hs = root.winfo_screenheight()x = int( (ws/2) - (w/2) )y = int( (hs/2) - (h/2) )root.geometry('{}x{}+{}+{}'.format(w, h, x, y))root =tk.Tk()  # 创建窗口对象
root.title(string = 'Label部件演示')  #设置窗口标题
setCenter(root,500,200)  #把主菜单移动的屏幕中央,菜单窗户口大小400X300label = tk.Label(master=root,    #上级部件text = 'Label部件 '*5,     #Label显示的 文字信息height=3,      #高度width=100,     #宽度justify='right',  #对齐方式bg='yellow',   #背景颜色activebackground='red',  #活动状态时的背景色。takefocus=True)  #该Label接收输入焦点
label.pack()   #pack()方法放置部件 #只能显示GIF格式的图片
img=tk.PhotoImage(file="coins.gif")label2 = tk.Label(master=root,   #上级部件text = 'Label2部件'*5,  #Label显示的 文字信息activebackground='red',    #活动状态时的前景色。activeforeground='white',   #活动状态时的背景色。anchor=tk.W,  #控制文本或者图像在label中的显示位置。background='#BCFFFA',   #背景色foreground='black',    #前景色borderwidth=0,  #边框宽度compound=tk.LEFT,   #文字在图片的位置cursor='hand2',   #鼠标进入部件时的形状disabledforeground='green',   #禁用时前景色font=("微软雅黑",12),  #字体和大小highlightbackground='blue',  #高亮背景色highlightcolor='green',  #高亮前景色highlightthickness=2,  #高亮边框的宽度image=img,   #要显示的图形对象height=6,    #高度width=400,   #宽度justify='right',  #对齐方式padx=2,  #部件x方向间距pady=3,  #部件y方向间距underline=10,  #在第11个字符下划线)  #在root上创建 label标签
label2.pack()   #pack()方法放置部件 bitmaps=["error", "gray75", "gray50", "gray25", "gray12"]  #系统图标
bitmaps2=[ "hourglass", "info", "questhead","question","warning"] #系统图标
frame=tk.Frame(master=root)   #建立一个Frame框架
frame.pack()  #pack()方法放置
for b in bitmaps:  label3 = tk.Label(master=frame,   #上级部件为frametext=b,  #显示信息bitmap=b,  #显示图标width=100,  #宽度background='white', #背景颜色justify='right',  #对齐方式borderwidth=2,  #边框宽度padx=1,  #部件x方向间距pady=1, #部件y方向间距compound=tk.LEFT   #图片在文字左边)label3.pack(side=tk.LEFT)frame2=tk.Frame(master=root)
frame2.pack()
for b in bitmaps2:label3 = tk.Label(master=frame2,   #上级部件为frame2text=b,   #显示信息bitmap=b,  #显示图标width=100,  #宽度background='white',   #背景颜色justify='right',  #对齐方式borderwidth=2,   #边框宽度padx=1,   #部件x方向间距pady=1,   #部件y方向间距compound=tk.RIGHT     #图片在文字右边)label3.pack(side=tk.LEFT)root.mainloop()     # 进入消息循环

程序运行结果显示出如下的窗口。

通过上面程序的演示,大家对Label部件有了深刻的认识,对参数的使用方法有了了解。Label部件可以说是Tkinter最常用、最重要的部件。
Tkinter容器组件没有背景图片属性,通常利用Label图片属性,来给容器组件增加背景图片。我们利用Label部件设计一个背景图片类class BackPicture,这个类可以给Tk窗口、Toplevel窗口和框架Frame的背景显示一张图片。
class BackPicture类的入口参数file是符合Tkinter的PhotoImage方法的图片文件,图片格式支持GIF和PNG图形格式。参数img是PhotoImage对象数据。file和img是二选一,优先file参数。
下面看BackPicture类的定义和演示程序。

# -*- coding: utf-8 -*-
import tkinter as tk  #装载tkinter模块,用于Python3root =tk.Tk()  # 创建窗口对象
root.title(string = 'BackPicture背景图片显示演示')   #设置窗口标题
root.geometry('400x100') #改变窗口大小img_png =tk.PhotoImage(file = 'b.png') #装载一个图片文件class  BackPicture(tk.Label):  #背景图片'''这个类可以给Tk窗口、Toplevel窗口和框架Frame的背景显示一张图片。BackPicture类的入口参数file是符合Tkinter的PhotoImage方法的图片文件,图片格式支持GIF和PNG图形格式。参数img是PhotoImage对象数据。file和img是二选一,优先file参数。bp= BackPicture(root,file = 'b.png')  #使用方法一 bp= BackPicture(root,img=img_png)  #使用方法二 '''def __init__(self ,root,file=None,img=None):self.root=rootself.file=fileself.img=imgif self.file !=None:self.img=tk.PhotoImage(file =self.file) #装载一个图片文件tk.Label.__init__(self ,self.root, image = self.img)self.init()def init(self):self.place(x=0, y=0,  #坐标起点(0,0)relwidth=1, #部件相对于窗口的宽度relheight=1, #部件相对于窗口的高度bordermode=tk.OUTSIDE  #部件边框模式)  #使用place方法的相对位置#bp= BackPicture(root,file = 'b.png') #使用方法一
bp= BackPicture(root,img=img_png) #使用方法二 b="info"
label2 = tk.Label(master=root,   #上级部件为frametext=b,  #显示信息bitmap=b,  #显示图标width=100,  #宽度background='white', #背景颜色justify='left',  #对齐方式borderwidth=2,  #边框宽度padx=1,  #部件x方向间距pady=1, #部件y方向间距compound=tk.LEFT   #图片在文字左边)
label2.pack()b="question"
label3 = tk.Label(master=root,   #上级部件为frametext=b,  #显示信息fg='yellow',bitmap=b,  #显示图标width=100,  #宽度background='blue', #背景颜色justify='left',  #对齐方式borderwidth=2,  #边框宽度padx=1,  #部件x方向间距pady=1, #部件y方向间距compound=tk.LEFT   #图片在文字左边)
label3.pack(side=tk.BOTTOM,anchor=tk.SW)root.mainloop() # 进入Tkinter消息循环

这个程序运行结果。

这个class BackPicture类可以给Tk窗口、Toplevel窗口和框架Frame的背景显示一张图片。由于Tkinter的显示有先后优先顺序,这个BackPicture类要在Tk窗口、Toplevel窗口和Frame框架大小固定后,再显示BackPicture背景图片。这个类使用place方法,通过前面学习,我们了解place方法可以与pack方法、grid方法混合使用。因此并不影响原先的tk控件布局,如果tk控件尺寸小,有漏隙,就可以看到窗口背景图片贴图。

(本文为作者书籍《用Tkinter打造GUI开发工具》书中截选,有意合作或出版可联系作者QQ:2775205,量化开发或Tkinter开发咨询群:524949939)

小白python量化分析框架1.00已经设计完成,将随作者量化书一起提供全部源代码。

《用Tkinter打造GUI开发工具》是作者为打造第二代小白python量化分析框架2.0做基础框架模块搭建,未来开发Python程序更加方便和简单。设计的Python应用程序更加美观,功能更加丰富和强大。

用Tkinter打造GUI开发工具(14)Tkinter小部件的Label标签部件相关推荐

  1. [转载] 用Tkinter打造GUI开发工具(45)用Tkinter做自己的中文代码编辑器

    参考链接: Python | 使用Tkinter的简单注册表格 用Tkinter打造GUI开发工具(45)用Tkinter做自己的中文代码编辑器 前面我们给了Tkinter接管Python输入和输出的 ...

  2. 用Tkinter打造GUI开发工具(23)软件窗口皮肤

    @用Tkinter打造GUI开发工具(23)软件窗口皮肤 用Tkinter打造GUI开发工具(23)软件窗口皮肤 Tkinter 是 Python 的标准 GUI 库,它是一个跨平台的脚本图形界面接口 ...

  3. 用Tkinter打造GUI开发工具(8)对齐方式和浮雕风格

    用Tkinter打造GUI开发工具(8)对齐方式和浮雕风格 我们这篇继续介绍Tkinter通用属性. 首先介绍对齐方式.Tkinter小部件的对齐方式用属性anchor.anchor取值有tk.N(上 ...

  4. 用Tkinter打造GUI开发工具(7)字体类型

    Tkinter字体类型根据Python使用的平台,可能会有三种方法来指定类型的风格. 1)作为一个元组的第一个元素是字体,紧随其后的是分大小,可选地紧随其后 字符串包含一个或多个风格修饰符粗体.斜体. ...

  5. python编程工具p-python Gui开发工具选择

    Python最大的特点就在于她的快速开发功能.作为一种胶水型语言,python几乎可以渗透在我们编程过程中的各个领域.这里我简单介绍一下用python进行gui开发的一些选择. 1.Tkinter T ...

  6. python自带gui_Python GUI开发工具中五种类型的相关介绍

    Python这一计算机语言不仅具有十分简捷的操作功能,它还具有十分快速的相关开发功能,此文主要向你介绍的是关于Python GUI开发工具在实际相关应用操作过程中的具体操作,以及这几种开发工具相关内容 ...

  7. Python GUI 开发工具

    Python Tkinter教程(GUI图形界面开发教程):http://c.biancheng.net/python/tkinter/ PyQt5教程:http://code.py40.com/fa ...

  8. python gui开发工具_深入解析Python,透析应用开发,涵盖9大应用领域的Python框架...

    前言 当前,Python 已经成为最流行的程序设计语言之一,被越来越多的人作为首选语言来学习和应用.作为一种解释型的语言,Python具有内置的高级数据结构和简单有效的面向对象编程机制.同时,其语法简 ...

  9. java gui 开发工具_用什么工具进行java GUI的开发?

    这个就非常多啦,有现成的插件,也有IDE环境,下面我简单介绍一下: WindowBuilder 这是一个非常不错的Java GUI开发插件,支持Swing, AWT,SWT等众多组件,安装完成后,可以 ...

最新文章

  1. 随记:kickstart远程批量无人值守安装linux
  2. mysql select操作
  3. vscode 免费视频教程
  4. 文件上传下载小结一(转载)
  5. 检查是否有负循环(Bellman Ford, Floyd-Warshall)
  6. 课时 15-深入解析 Linux 容器 (华敏)
  7. 主题模型LDA的实现
  8. Axure tabstrip and different control
  9. redis的zset使用(java)——存取List< Object>
  10. java aes解密算法_使用java实现AES算法的加解密(亲测可用)
  11. prestashop后台如何删除订单
  12. RedHat Enterprise Linux 5下安装firefox
  13. 初次见面C#排坑记录
  14. 关于弱电工程图纸的几个常见问题
  15. 转帖 美国 工程索引 收录中国科技论文的最新规定
  16. Android 侧滑抽屉菜单
  17. Discuz论坛超漂亮手机模板
  18. 不看后悔!新手小白必看的保姆级教程!一篇文章学会数据仓库!
  19. TPO Official 53 Independent Writing Task
  20. 综合案例分析-----使用Ajax实现新闻点评及时更新(ajax在jQuery中的运用学习第十三和十四天)

热门文章

  1. 用39条Python语句完成“数字华容道”游戏
  2. 淘宝获得店铺所有商品接口展示
  3. xp打印机驱动安装不了_解决Windows XP安装过程中的“安装程序找不到任何硬盘驱动器”
  4. 蓝桥杯上Excel地址c语言,2017蓝桥杯Excel地址(C++C组)
  5. 用Direct3D设计二维横版过关动作类游戏的角色运动(双倍速、二段跳)
  6. Folat和float的区别
  7. python打印进度条(4行代码简单使用)
  8. 获取linux详细信息,通过编程获取Linux文件系统使用的详细信息
  9. 简单聊聊工程质量中研发需要关心的点
  10. 论坛通用架构设计文档