[关闭]
@yanglt7 2018-11-16T12:11:47.000000Z 字数 2745 阅读 739

Tkinter01_Label & Button

Tkinter


Label 组件

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

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

  1. from tkinter import *
  2. # 导入 Tkinter 模块的所有内容
  3. root = Tk()
  4. # 创建一个主窗口,用于容纳整个 GUI 程序
  5. root.title("FishC Demo")
  6. # 设置主窗口对象的标题栏
  7. # 添加一个 Label 组件,Label 组件可以显示文本、图标或图片。
  8. # 创建一个文本 Label 对象,可以在字符串中直接使用 \n 对现实中的文本断行
  9. textLabel = Label(root,
  10. text="您所下载的影片含有未成年人限制内容,\n请满18周岁后再点击观看!",
  11. justify=LEFT, # 设置文字左对齐
  12. padx=10)
  13. textLabel.pack(side=LEFT)
  14. # 调用 Label 组件的 pack() 方法,用于自动调节组件自身的尺寸
  15. # side 参数可以设置 LEFT、RIGHT、TOP、和 BOTTOM 四个方位,默认是 TOP
  16. # padx、pady 选项设置偏移位置
  17. # 创建一个图像 Label 对象
  18. # 用 PhotoImage 实例化一个图片对象(支持 gif 格式的图片)
  19. photo = PhotoImage(file="18.gif")
  20. imgLabel = Label(root, image=photo)
  21. imgLabel.pack(side=RIGHT)
  22. mainloop()
  23. # 通常是程序的最后一行代码,执行后程序进入主事件循环。

此处输入图片的描述

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

  1. from tkinter import *
  2. root = Tk()
  3. photo = PhotoImage(file="bg.gif")
  4. theLabel = Label(root,
  5. text="学 Python 到 FishC!",
  6. justify=LEFT,
  7. image=photo,
  8. compound=CENTER, # 设置文本和图像的混合模式
  9. font=("微软雅黑", 20), # 设置字体和字号
  10. fg="green") # 设置文本颜色
  11. theLabel.pack()
  12. mainloop()

此处输入图片的描述

Button 组件

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

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

  1. from tkinter import *
  2. def callback():
  3. var.set("吹吧你,我才不信呢!")
  4. root = Tk()
  5. frame1 = Frame(root)
  6. frame2 = Frame(root)
  7. var = StringVar()
  8. var.set("您所下载的影片含有未成年人限制内容,\n请满 18 周岁后再点击观看!")
  9. textLabel = Label(frame1,
  10. textvariable=var,
  11. justify=LEFT)
  12. textLabel.pack(side=LEFT)
  13. photo = PhotoImage(file="18.gif")
  14. imgLabel = Label(frame1, image=photo)
  15. imgLabel.pack(side=RIGHT)
  16. # 加一个按钮
  17. theButton = Button(frame2, text="我已满 18 周岁", command=callback)
  18. theButton.pack()
  19. frame1.pack(padx=10, pady=10)
  20. frame2.pack(padx=10, pady=10)
  21. mainloop()

此处输入图片的描述

Checkbutton 组件

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

例 4

  1. from tkinter import *
  2. root = Tk()
  3. # 需要一个 Tkinter 变量,用于表示该按钮是否被选中
  4. v = IntVar()
  5. c = Checkbutton(root, text="测试一下", variable=v)
  6. c.pack()
  7. # 如果选项被选中,那么变量 v 被赋值为 1,否则为 0
  8. # 可以用 Label 标签动态展示
  9. l = Label(root, textvariable=v)
  10. l.pack()
  11. mainloop()

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

例 5

  1. from tkinter import *
  2. root = Tk()
  3. GIRLS = ["西施", "貂蝉", "王昭君", "杨玉环"]
  4. v = []
  5. for girl in GIRLS:
  6. v.append(IntVar())
  7. b = Checkbutton(root, text=girl, variable=v[-1])
  8. b.pack(anchor=W) # 左对齐
  9. # anchor 选项用于指定显示位置,可以设置为 N、NE、E、SE、S、SW、W、NW 和 CENTER 九个不同的值
  10. mainloop()

此处输入图片的描述

Radiobutton 组件

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

例 6

  1. from tkinter import *
  2. root = Tk()
  3. # 如果有多个选项,可使用循环来处理
  4. LANGS = [
  5. ("Python", 1),
  6. ("Perl", 2),
  7. ("Ruby", 3),
  8. ("Lua", 4)]
  9. v = IntVar()
  10. v.set(1) # 设置默认在第 1 个
  11. for lang, num in LANGS:
  12. b = Radiobutton(root, text=lang, variable=v, value=num)
  13. b.pack(anchor = W)
  14. mainloop()

此处输入图片的描述

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

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

此处输入图片的描述

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

参考链接:

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

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注