第12章 GUI编程与Tkinter相关组件介绍

本章的知识点:

1、了解GUI程序开发;
2、学习Tkinter的主要组件

内容:

12.1 GUI程序开发简介

12.2 Tkinter与主要组件

创建和运行GUI程序,需要5步:

1、导入Tkinter模块。(import tkinter)

2、创建一个顶层窗口。(root = Tk())

3、在顶层窗口的基础上构建所需要的GUI模块和功能。

4、将每一个模块与底层程序代码关联起来。

5、执行主循环。 (root.mainloop())

12.2.1 在程序中使用Tkinter

12.2.2 顶层窗口

1 from tkinter import *
2 root = Tk()
3 root.title("顶层窗口")
4 root.mainloop()
View Code

12.2.3 标签

1 from tkinter import *
2 root = Tk()
3 label = Label(root, text="Hello World")
4 label.pack()
5 root.mainloop()
View Code

12.2.4 框架

 1 from tkinter import *
 2 root = Tk()
 3 root.title("顶层窗口")
 4 for relief in [RAISED, SUNKEN, FLAT, RIDGE, GROOVE, SOLID]:
 5     f = Frame(root, borderwidth=2,relief=relief)
 6     # 定义标签,并且使用side参数设定排列方式。
 7     Label(f, text=relief, width=10).pack(side=LEFT)
 8     # 显示框架,并设定向左排列,x和y轴的宽度均为5个像素。
 9     f.pack(side=LEFT, padx=5, pady=5)
10 root.mainloop()
11 输出:
View Code

11.2.5 按钮

1 from tkinter import *
2 root = Tk()
3 root.title("顶层窗口")
4 # 使用state参数来设置按钮的状态
5 Button(root, text="禁用", state=DISABLED).pack(side=LEFT)
6 Button(root, text="取消").pack(side=LEFT)
7 Button(root, text="确定").pack(side=LEFT)
8 Button(root, text="退出", command=root.quite).pack(side=RIGHT)
9 root.mainloop()
View Code

11.2.6 输入框

 1 from tkinter import *
 2 root = Tk()
 3 root.title("顶层窗口")
 4 f1 = Frame(root)  # 定义框架
 5 Label(f1, text="标准输入框:").pack(side=LEFT, padx=5, pady=10)
 6 e1 = set("输入框默认内容")
 7 f1.pack()
 8 f2 = Frame(root)  # 定义框架
 9 e2 = StringVar()
10 Label(f2, text="禁用输入框:").pack(side=LEFT, padx=5, pady=10)
11 Entry(f2, width=50, textvariable=e2, state=DISABLED).pack(side=LEFT)  # 禁用输入框
12 e2.set("不可修改的内容")  # 设置禁用的输入框内容
13 f2.pack()
14 
15 root.mainloop()
View Code

12.2.7 单选按钮

1 from tkinter import *
2 root = Tk()
3 root.title("顶层窗口")
4 foo = IntVar()  # 定义变量
5 for text,value in [('red', 1), ('green', 2), ('black', 3),('blue', 4),('yellow', 5)]:
6     r = Radiobutton(root, text=text, value=value, variable=foo)
7     r.pack(anchor=W)
8 foo.set(2)  # 设定默认选项
9 root.mainloop()
View Code

12.2.8 复选按钮

1 from tkinter import *
2 root = Tk()
3 root.title("顶层窗口")
4 l = [('red', 1), ('green', 2), ('black', 3),('blue', 4),('yellow', 5)]  #设置按钮的值
5 for text, value in l:
6     foo = IntVar()
7     c = Checkbutton(root, text=text, variable=foo)
8     c.pack(anchor=W)
9 root.mainloop()
View Code

1 from tkinter import *
2 root = Tk()
3 root.title("顶层窗口")
4 l = [('red', 1, NORMAL), ('green', 2, NORMAL), ('black', 3, DISABLED),('blue', 4, NORMAL),('yellow', 5, DISABLED)]  # 设置按钮的值
5 for text, value, status in l:
6     foo = IntVar()
7     c = Checkbutton(root, text=text, variable=foo, state=status)  # 使用stats设定按钮状态
8     c.pack(anchor=W)
9 root.mainloop()
View Code

12.2.9 消息

 1 from tkinter import *
 2 root = Tk()
 3 root.title("顶层窗口")
 4 Message(root, text="你好,我是戴愫,欢迎来到我的得到课程《有效提升你的职场写作能力》。"
 5                    "这是基础课的第二讲。"
 6                    "我单独用这一讲来说邮件写作,因为邮件是职场中写得最频繁,也是最受忽略的,"
 7                    "而它的质量提升空间非常大,我要帮你升级为高段位的邮件作者。"
 8                    "用我的套路,你能在短短10分钟内,写出一封战胜80%同行的邮件。"
 9                    "下面我把邮件拆解开,从标题、开头、正文、诉求和结尾这几方面,分别阐述。"
10                    "用“呼唤你”和“愉悦你”的标题"
11                    "首先是标题,好的标题要达到呼唤你,愉悦你的效果。"
12                    "比如这个标题:",
13         fg='ivory', bg='blue', relief=GROOVE).pack(padx=10, pady=10)
14 root.mainloop()
View Code

12.2.9 滚动条

 1 from tkinter import *
 2 root = Tk()
 3 root.title("顶层窗口")
 4 l = Listbox(root, height=6, width=15)
 5 scroll = Scrollbar(root, command=l.yview)
 6 l.configure(yscrollcommand=scroll.set)
 7 l.pack(side=LEFT)
 8 scroll.pack(side=RIGHT, fill=Y)
 9 for itme in range(20):
10     l.insert(END, itme)
11 root.mainloop()
View Code

12.2.11 列表框

1 from tkinter import *
2 root = Tk()
3 root.title("顶层窗口")
4 l = Listbox(root, width=15)
5 l.pack()
6 for itme in ['apple', 'orange', 'peach', 'banana', 'melon']:
7     l.insert(END, itme)
8 
9 root.mainloop()
View Code

12.3 Tkinter所有组件简介

表 21-1 Tkinter组件简介
组件 功能
Button 按钮。类似标签,但提供额外的功能,例如鼠标掠过、按下、释放以及键盘操作事件。
Canvas 画布。提供绘画功能(直线、椭圆、多边形、矩形),可以包含图形或位图。
Checkbutton   选择按钮。一组方框,可以选择其中的任意个(类似HTML中的checkbox)。
Radiobutton 单选按钮。一组按钮,其中只有一个可被“按下”(类似HTML中的radio).
Entry 文本框。单行文字域,用来收集键盘输入(类似HTML中的text)。
Frame 框架。包含其他组件的纯容器。
Lable

标签。用来显示文字或图片。

Listbox 列表框。一个选项列表,用户可以从中选择。
Menu 菜单。单击后弹出一个选项列表,用户可以从中选择。
Menubutton 菜单按钮。用来包含菜单的组件(有下拉式、层叠式等)。
Message 消息框。类似于标签,但可以显示多行文本。
Scale 进度条。线性“滑块”组件,可设定起始值和结束值,显示当前位置的精确值。
Scrollbar 滑动条。对其支持的组件(文件域、画布、列表框、文本框)提供滚动功能。
Text 文本域。多行文字域,可用来收集(或显示)用户输入的文字(类似HTML中的textarea)
Toplevel 顶级。类似框架,但提供一个独立的窗口容器。
posted @ 2019-01-03 21:26  无声胜有声  阅读(323)  评论(0)    收藏  举报