目录

前言

Label是用于显示文本或图像的控件。

(一)基本用法和可选属性

1.基本用法

基本用法:Label(根对象, [属性列表])

根对象:在那个窗体显示,例如主窗体。

属性列表:是可选的属性=属性值组成。

2.可选属性

属性 说明
text 标签显示的文本
font 设置文本的字体和大小
fg(foreground) 字体的颜色,
bg (background) 标签的背景色
width 标签的宽度(一个中文的字体宽为单位)
height 标签的高度(一个中文的字体高为单位)
padx 文字到边框的距离,水平方向
pady 文字到边框的距离,垂直方向
bd(borderwidth) 边框的宽度
relief 边框的样式
justify 文本对齐方式
image 图片
compound 图片与文字的混搭
anchor 方位

(二)属性的具体使用

1.常用属性

(1)font

font:设置字体与字体的大小

用法:font=("字体名",大小) 例如:font=(“黑体”, 20)

(2)fg 与 bg

fg 前景色,也就是字体的颜色,bg 背景颜色

用法:fg="red", fg="#121234"

(3)width 与 height

width height 标签的宽度与高度,都是以系统默认的中文的一个字体宽高为单位

用法:width = 5, height=2

2.边距与文本对齐方式

(1)边距:padx 与 pady

文字到边框的距离 padx 与 pady 水平与竖直方向

用法:padx=2, pady = 1 ,单位是像素,默认是1像素

(2)文本对齐方式:justify

Label 里的文本支持 转移字符 \n \t 等

用法:justify="left" ,可取 "left" ,"right", "center" ,默认是"center"居中对齐

案例一

import tkinter as tk

# 背景色与前景色
win = tk.Tk()
label_1 = tk.Label(win, text='fg="red" bg="blue"', fg="red", bg="blue")
label_1.pack() # 字体与字体的大小
label_2 = tk.Label(win, text='font=("微软雅黑", 20)', font=("微软雅黑", 20))
label_2.pack() # 宽度与高度
label_3 = tk.Label(win, text='width=10, height=3', bg="yellow", width=10, height=3)
label_3.pack()
label_4 = tk.Label(win, text='width=20, height=1', bg="yellow", width=20, height=1)
label_4.pack() # 边距
label_5 = tk.Label(win, text='padx pady 默认', bg="blue")
label_5.pack()
label_6 = tk.Label(win, text='padx=0, pady=0', bg="blue", padx=0, pady=0)
label_6.pack()
label_7 = tk.Label(win, text='padx=10, pady=10', bg="blue", padx=10, pady=10)
label_7.pack() # 对齐方式
label_8 = tk.Label(win, text="我是张一根,一匹想飞的狼,\n999号哦")
label_8.pack()
label_9 = tk.Label(win, text="我是张一根,一匹想飞的狼,\n999号哦", justify="left")
label_9.pack()
label_9 = tk.Label(win, text="我是张一根,一匹想飞的狼,\n999号哦", justify="right")
label_9.pack() win.mainloop()

案例一的效果

3.Label里放图片

(1)只放图片,没有文字

需要先导入图片的路径:img1 = tk.PhotoImage(file="image/01.png")

再使用:image=img1

注:目前支持 .png 与 .gif 格式, 还不支持 .jpg格式

案例二

import tkinter as tk

win = tk.Tk()

# 导入图片
img1 = tk.PhotoImage(file="image/01.png") # 在标签里放入图片
label_image1 = tk.Label(win, image=img1)
label_image1.pack() win.mainloop()

案例二的效果

(2)图片与文字混搭

需要使用:compound="对齐方式",

对齐方式有:'left', "right", "center"

案例三

import tkinter as tk

win = tk.Tk()

# 导入图片
img1 = tk.PhotoImage(file="image/01.png") # 在标签里放入图片
label_image1 = tk.Label(win, text="图文并茂", image=img1, compound="left")
label_image1.pack() label_image2 = tk.Label(win, text="图文并茂", image=img1, compound="right")
label_image2.pack() label_image3 = tk.Label(win, text="图文并茂", image=img1, compound="center", fg="red")
label_image3.pack() win.mainloop()

案例三的效果

4.Label可变的文字内容

先定义一个:tk变量,v = tk.StringVar()

在使用:textvariable=v

案例四

import tkinter as tk
import time # 背景色与前景色
win = tk.Tk() # 定义变量,必须是使用的是tk里的这个变量
v = tk.StringVar() # 使用v.set("string") 来定义变量
v.set("这是刚开始的文字") # 在标签里添加可变的文本
label_1 = tk.Label(win, textvariable=v, fg="red", bg="green", font=("黑体", 40))
label_1.pack()
while True:
v.set("%s" % time.ctime())
label_1.update()
time.sleep(1) win.mainloop()

案例四的效果

可以制作一个时间表

4.文字所在标签框的方位

anchor 可选的参数有:"e","w","s","n","ne","se","nw","sw",就是东西南北八个方向

anchor="n"

案例五

import tkinter as tk

win = tk.Tk()
label_1 = tk.Label(win, text="方位是 N", bg="green", width=10, height=3, anchor="n")
label_1.pack() label_2 = tk.Label(win, text="方位是 NE", bg="blue", width=10, height=3, anchor="ne")
label_2.pack() label_3 = tk.Label(win, text="方位是 SW", bg="red", width=10, height=3, anchor=tk.SW)
label_3.pack() label_4 = tk.Label(win, text="方位是 W", bg="yellow", width=10, height=3, anchor=tk.W)
label_4.pack()
win.mainloop()

案例五的效果

5.边框样式与宽度

relief 表示边框样式,可选的参数有:flat(平的),sunken (沉没的, 凹下去的),raised (提高,凸出来的),ridge(脊,中键凸的)

relief="sunken", 默认是flat.

案例六

import tkinter as tk

win = tk.Tk()

# 在标签里放入图片SUNKEN, RAISED, GROOVE, and RIDGE
# 默认 flat平的
label_1 = tk.Label(win, text='relief=flat', bd=8)
label_1.pack() # sunken 沉没的
label_2 = tk.Label(win, text='relief=sunken', relief="sunken", bd=5)
label_2.pack() # raised 提高
label_3 = tk.Label(win, text='relief=raised', relief="raised", bd=5)
label_3.pack() # ridge脊
label_4 = tk.Label(win, text='relief=ridge', relief="ridge", bd=10)
label_4.pack() win.mainloop()

案例六的效果

作者:Mark

日期:2019/01/31 周四

tkinter学习系列(三)之Label控件的更多相关文章

  1. winform学习(7)Label控件、Button控件、TextBox控件

    Label控件是System.Windows.Forms.Label 类提供的控件. 作用:主要用来提供其他控件的描述文字,例如:登录窗体上的用户名.密码(输入框前面的字) Button控件是Syst ...

  2. WPF学习系列之五(WPF控件)

    控件:    1.内容控件------这些控件能够包含嵌套的元素,为它们提供几乎无限的显示能力.内容控件包括Lable,Button 以及ToolTip类. 内容控件是更特殊的控件类型,它们可以包含( ...

  3. WP8.1学习系列(第二十章)——添加控件和处理事件

    先决条件 添加控件 设置控件的名称 设置控件属性 创建事件处理程序 新控件 总结 相关主题 通过使用如按钮.文本框和组合框等控件,你可以创建应用的 UI. 下面将显示如何将控件添加到应用.处理控件时, ...

  4. WP8.1学习系列(第十章)——中心控件Hub设计指南

    Windows Phone 应用商店应用中的中心控件指南   在本文中 说明 示例 用法指南 设计指南 相关主题 重要的 API Hub (XAML) HubSection (XAML) 说明 中心控 ...

  5. Android Studio 学习笔记(三):简单控件及实例

    控件.组件.插件概念区分 说到控件,就不得不区分一些概念. 控件(Control):编程中用到的部件 组件(Component):软件的组成部分 插件(plugin): 应用程序中已经预留接口的组件 ...

  6. pyqt5 动画学习(三) 指定控件的移动轨迹

    这一篇来讲解自定义控件的移动轨迹 原理:我们采用QPainterPath先画一个弧线,然后加载一个物体让物体移动,设置100个关键帧,每个关键帧物体的坐标位置就是弧线的坐标位置,这样就能达到按照指定轨 ...

  7. 《Dotnet9》系列-开源C# WPF控件库3《HandyControl》强力推荐

    大家好,我是Dotnet9小编,一个从事dotnet开发8年+的程序员.我最近开始写dotnet分享文章,希望能让更多人看到dotnet的发展,了解更多dotnet技术,帮助dotnet程序员应用do ...

  8. 【WPF学习】第二十章 内容控件

    内容控件(content control)是更特殊的控件类型,它们可包含并显示一块内容.从技术角度看,内容控件时可以包含单个嵌套元素的控件.与布局容器不同的是,内容控件只能包含一个子元素,而布局容器主 ...

  9. Label控件如何根据字符串自定义大小

    一.. this.label_Msg.AutoSize = false;  //设置label空件不能自动大小 二.. 用代码控制label控件的大小 1.根据字符串.label的宽度 计算字符串的面 ...

  10. winform 可拖动的自定义Label控件

    效果预览: 实现步骤如下: (1)首先在项目上右击选择:添加->新建项,添加自定义控件 (2)自定义的一个Label让它继承LabelControl控件,LabelControl控件是DevEx ...

随机推荐

  1. Python必会的单元测试框架 —— unittest

    用Python搭建自动化测试框架,我们需要组织用例以及测试执行,这里博主推荐Python的标准库——unittest. unittest是xUnit系列框架中的一员,如果你了解xUnit的其他成员,那 ...

  2. Jenkins之使用Pyinstaller构建Python应用程序

    目录 1. 极简概述 2. Jenkins配置 2.1 安装JDK 2.2 安装Jenkins 3. 安装Docker 4. 使用PyInstaller构建Python应用程序 4.1 Fork 一个 ...

  3. JVM内存区域划分及垃圾回收

    第一部分.闲扯+概述 近来在研读<深入理解java虚拟机>一书,读完之后做个小结,算是记录一下自己的学习所得,在成长的路上,只能死磕. 要理解JVM,就要先从其内存区域划分开始,知道其由几 ...

  4. static和fianl修饰变量的区别

    参考:http://hllvm.group.iteye.com/group/topic/37682 http://blog.csdn.net/javakuroro/article/details/68 ...

  5. 一句命令修复Xcode6.2插件失效的问题

    Xcode升级到6.2之后XVim无法使用了. 打开终端输入: find ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins - ...

  6. thinkphp通用控制器

    <?php namespace 目录\Controller; class TypeController extends Controller { public function add() { ...

  7. ServerSocket和Socket

    前言 用ServerSocket和Socket做了个Server.Client通信的demo,以及学习下在这个demo过程中用到java.net.java.io包下几个常用的类. Server imp ...

  8. c# Unicode 转换 ASCII

    /// <summary> /// Unicode 转换 ASCII /// </summary> /// <param name="theText" ...

  9. 将代码从 spark 1.x 移植到 spark 2.x

    1. SparkSession sparkSession可以视为sqlContext和hiveContext以及StreamingContext的结合体,这些Context的API都可以通过spark ...

  10. 使用Java解析XML

    一.解析的对象 <?xml version="1.0" encoding="UTF-8"?> <users> <user id=& ...