Python Tkinter学习笔记

介绍

入门实例

显示一个窗口,窗口里面有一个标签,显示文字

import tkinter as tk
# 一个顶层窗口的实例(Top Level),也称为根窗口
app = tk.Tk()
# 设置窗口的标题
app.title("Hello World")
# 创建一个标签,指定父级,以及文字
theLabel = tk.Label(app, text="这是一个标签")
# 放置组件并自动调整组件自身的尺寸和位置
theLabel.pack()
# 窗口的主事件循环
app.mainloop()

点击按钮触发事件

import tkinter as tk

class APP:
    def __init__(self, master):
        frame = tk.Frame(master)
        frame.pack(side=tk.LEFT, padx=10, pady=10)

        self.hi_there = tk.Button(
                                frame,
                                text="打招呼",
                                bg="black",
                                fg="white",
                                command=self.say_hi)
        self.hi_there.pack()
    
    def say_hi(self):
        print("我被点啦")

root = tk.Tk()
app = APP(root)
root.mainloop()

常用组件

Label 标签

功能

Label(标签)组件用于在屏幕上显示文本或图像。Label 组件仅能显示单一字体的文本,但文本可以跨越多行。另外,还可以为其中的个别字符加上下划线(例如用于表示键盘快捷键)。

Label 组件用于显示文本和图像,并且使用双缓冲,这样你就可以随时更新内容,没有恼人的闪烁。
如果希望显示的数据用户可以进行操作,使用 Canvas 组件或许更为合适。

用法

使用 Label 组件,你可以指定想要显示的内容(可以是文本、位图或者图片):

from tkinter import *

master = Tk()

w = Label(master, text="Hello FishC!")
w.pack()

mainloop()

如果你没有指定 Label 的大小,那么 Label 的尺寸是正好可以容纳其内容而已

当然你可以通过 height 和 width 选项来明确设置 Label 的大小:如果你显示的是文本,那么这两个选项是以文本单元为单位定义 Label 的大小;如果你显示的是位图或者图像,那么它们以像素为单位(或者其他屏幕单元)定义 Label 大小。

你可以通过 foreground(或 fg)和 background(或 bg)选项来设置 Label 的前景色和背景色。你也可以选择 Label 中的文本用哪种字体来显示。指定颜色和字体时需谨慎,除非你有一个很好的理由,否则建议使用默认值(主要是考虑到不同平台的兼容性)。

w = Label(master, text="我爱编程", font="华康少女字体, 16", fg="green")

注:你还可以使用 #RRGGBB 的格式指定具体的颜色值,例如 "#%02x%02x%02x" % (123, 188, 233)

Label 可以显示多行文本,你可以直接使用换行符或使用 wraplength 选项来实现。当文本换行的时候,你可以使用 anchor 和 justify 选项来使得文本如你所希望的显示出来:

longtext = """
Label 可以显示多行文本,你可以直接使用换行符
或使用 wraplength 选项来实现。当文本换行的时
候,你可以使用 anchor 和 justify 选项来使得
文本如你所希望的显示出来。
"""
w = Label(master, text=longtext, anchor=W, justify=LEFT)
w.pack()

Python Tkinter学习笔记

Label 可以显示 Tkinter 变量的内容。言下之意就是当变量的内容发生改变时,Label 中显示的内容也会自动更新:

v = StringVar()
w = Label(master, textvariable=v).pack()
v.set("~新的文本~")

Python Tkinter学习笔记

你可以使用 Label 显示 PhotoImage 和 BitmapImage 对象。当你这么做的时候,请务必保留一份图片对象的引用,以防止被 Python 的垃圾回收机制回收。你可以使用一个全局变量,或一个实例的属性,或者再简单点,在实例上添加一个属性即可:

photo = PhotoImage(file="xxx.gif")
w = Label(master, image=photo)
w.pack()

参数说明

Label(master=None, options)(class)
master -- 父组件
options -- 组件选项,下方表格详细列举了各个选项的具体含义和用法:

上一篇:潭州课堂25班:Ph201805201 django 项目 第二课 git 版本控制 (课堂笔记)


下一篇:glPixelStorei 详解 包括像素传输