Tkinter01_Label & Button

本文介绍Tkinter库的基础组件使用,包括Label、Button、Checkbutton和Radiobutton等,通过实例演示如何创建GUI界面,如显示文本和图片、响应按钮点击事件及实现单选和多选功能。

Tkinter01_Label & Button

标签(空格分隔): Tkinter


Label 组件

Label 组件是用于在界面上输出描述的标签。

例 1 提示用户 “您所下载的影片含有未成年人限制内容,\n请满18周岁后再点击观看!”。

from tkinter import *
# 导入 Tkinter 模块的所有内容

root = Tk()
# 创建一个主窗口,用于容纳整个 GUI 程序

root.title("FishC Demo")
# 设置主窗口对象的标题栏

# 添加一个 Label 组件,Label 组件可以显示文本、图标或图片。
# 创建一个文本 Label 对象,可以在字符串中直接使用 \n 对现实中的文本断行
textLabel = Label(root,
                  text="您所下载的影片含有未成年人限制内容,\n请满18周岁后再点击观看!",
                  justify=LEFT, # 设置文字左对齐
                  padx=10)
textLabel.pack(side=LEFT)
# 调用 Label 组件的 pack() 方法,用于自动调节组件自身的尺寸
# side 参数可以设置 LEFT、RIGHT、TOP、和 BOTTOM 四个方位,默认是 TOP
# padx、pady 选项设置偏移位置

# 创建一个图像 Label 对象
# 用 PhotoImage 实例化一个图片对象(支持 gif 格式的图片)
photo = PhotoImage(file="18.gif")
imgLabel = Label(root, image=photo)
imgLabel.pack(side=RIGHT)

mainloop()
# 通常是程序的最后一行代码,执行后程序进入主事件循环。

此处输入图片的描述

例 2 将图片作为背景,文字显示在图片的上面,只需设置 compound 选项。

from tkinter import *

root = Tk()

photo = PhotoImage(file="bg.gif")
theLabel = Label(root,
                          text="学 Python 到 FishC!",
                          justify=LEFT,
                          image=photo,
                          compound=CENTER, # 设置文本和图像的混合模式
                          font=("微软雅黑", 20), # 设置字体和字号
                          fg="green") # 设置文本颜色
theLabel.pack()

mainloop()

此处输入图片的描述

Button 组件

Button 组件是用于实现一个按钮,它的绝大多数选项和 Label 组件一样。特别的是 Button 组件可以接收用户的信息。Button 组件有一个 command 选项,用于指定一个函数或方法,当用户单击按钮的时候,Tkinter 就会自动地去调用这个函数或方法。

例 3 添加一个按钮,在按钮被单击后 Label 文本发生改变。想要文本发生改变,只需要设置 textvariable 即可。

from tkinter import *

def callback():
    var.set("吹吧你,我才不信呢!")

root = Tk()

frame1 = Frame(root)
frame2 = Frame(root)

var = StringVar()
var.set("您所下载的影片含有未成年人限制内容,\n请满 18 周岁后再点击观看!")
textLabel = Label(frame1,
                  textvariable=var,
                  justify=LEFT)
textLabel.pack(side=LEFT)

photo = PhotoImage(file="18.gif")
imgLabel = Label(frame1, image=photo)
imgLabel.pack(side=RIGHT)

# 加一个按钮
theButton = Button(frame2, text="我已满 18 周岁", command=callback)
theButton.pack()

frame1.pack(padx=10, pady=10)
frame2.pack(padx=10, pady=10)

mainloop()

此处输入图片的描述

Checkbutton 组件

Checkbutton 组件就是常见的多选按钮,而 Radiobutton 则是单选按钮。

例 4

from tkinter import *

root = Tk()

# 需要一个 Tkinter 变量,用于表示该按钮是否被选中
v = IntVar()
c = Checkbutton(root, text="测试一下", variable=v)
c.pack()
# 如果选项被选中,那么变量 v 被赋值为 1,否则为 0
# 可以用 Label 标签动态展示
l = Label(root, textvariable=v)
l.pack()

mainloop()

此处输入图片的描述
此处输入图片的描述

例 5

from tkinter import *

root = Tk()

GIRLS = ["西施", "貂蝉", "王昭君", "杨玉环"]

v = []

for girl in GIRLS:
    v.append(IntVar())
    b = Checkbutton(root, text=girl, variable=v[-1])
    b.pack(anchor=W) # 左对齐
# anchor 选项用于指定显示位置,可以设置为 N、NE、E、SE、S、SW、W、NW 和 CENTER 九个不同的值

mainloop()

此处输入图片的描述

Radiobutton 组件

Radiobutton 组件跟 Checkbutton 组件的用法基本一致,唯一不同的是 Radiobutton 实现的是“单选”的效果。要实现这种互斥的效果,同一组内的所有 Radiobutton 只能共享一个 variable 选项,并且需要设置不同 value 选项值。

例 6

from tkinter import *

root = Tk()

# 如果有多个选项,可使用循环来处理
LANGS = [
    ("Python", 1),
    ("Perl", 2),
    ("Ruby", 3),
    ("Lua", 4)]

v = IntVar()
v.set(1) # 设置默认在第 1 个

for lang, num in LANGS:
    b = Radiobutton(root, text=lang, variable=v, value=num)
    b.pack(anchor = W)

mainloop()

此处输入图片的描述

indicatoron 设置成 False,则是按钮形式,默认是圆圈形式

    b = Radiobutton(root, text=lang, variable=v, value=num, indicatoron=False)
    b.pack(fill=X)

此处输入图片的描述

摘自《零基础入门学习Python》

参考链接:

An Introduction To Tkinter
Tkinter汇总
Python GUI编程(Tkinter)
Tkinter颜色方案举例
python tkinter可以使用的颜色
tkinter学习-菜单与画布
程序设计思想与方法–第五章
用Python中的tkinter模块作图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值