目录

前言

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. 【随笔】nginx add_header指令的使用

    nginx配置文件通过使用add_header指令来设置response header. 具体方法如下: add_header key value add_header Cache-Control n ...

  2. EOS行为核心:解析插件chain_plugin

    EOS提供了大量的rpc接口,其中功能性最强,使用最频繁的一部分接口是EOS的行为核心,由chain_api_plugin提供,具体实现是在chain_plugin. 关键字:EOS,区块链,chai ...

  3. #16 os&sys模块

    前言 在编写Python程序的时候,可能需要和操作系统进行交互,比如获取某个目录下的内容.更改运行目录.更改环境变量等操作.在Python中有两个模块将这些问题完美解决,一起看看哇! 一.os模块 o ...

  4. C++ 日期 & 时间

    C++ 标准库没有提供所谓的日期类型.C++ 继承了 C 语言用于日期和时间操作的结构和函数. 为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 头文件. 有四个与时间相关的类型:clo ...

  5. 数据库设计---PowerDesigner(物理模型和概念模型)

    内容 第一种方法:概念模型转物理模型 1.首先新建模型--选择概念模型(CDM)   2.新建实体(学生和卡),设置相应的属性         3.一共四种关系(1:1,1:n,n:1,n:n),根据 ...

  6. 如何简单的在 ASP.NET Core 中集成 JWT 认证?

    前情提要:ASP.NET Core 使用 JWT 搭建分布式无状态身份验证系统 文章超长预警(1万字以上),不想看全部实现过程的同学可以直接跳转到末尾查看成果或者一键安装相关的 nuget 包 自上一 ...

  7. Java学习笔记之——类与对象

    1.参数的传递方式 1)值传递 2)引用传递 2.类和对象: (1)类的定义: public class 类名{ 类型 属性1: 类型 属性2: ……… public 返回值类型 方法名1(形参){ ...

  8. 【Servlet】1、Servlet监听器及相关接口

    Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前.发生后可以做一些必要的处理. 接口: 目前Servlet2.4和JSP2.0总共有8个监听器接口和6个Event类,其中Ht ...

  9. CSS如何让不相等的字符上下对齐

    最后效果: <div class="main"> <span style="font-size:12px;"><dl class= ...

  10. logo.ico在html网页中的实现

    <!doctype html><html> <head> <meta charset="utf-8"/> <title> ...