本章的知识点:

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 顶级。类似框架,但提供一个独立的窗口容器。

转载于:https://www.cnblogs.com/wssys/p/10217064.html

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

  1. 第12章 元编程与注解、反射

    第12章 元编程与注解.反射 反射(Reflection)是在运行时获取类的函数(方法).属性.父类.接口.注解元数据.泛型信息等类的内部信息的机制.这些信息我们称之为 RTTI(Run-Time T ...

  2. CSAPP:第12章 并发编程

    CSAPP:第12章 并发编程 文章目录 CSAPP:第12章 并发编程 12.1 基于进程的并发编程(Process-based) 12.1.1 基于进程的并发服务器 12.1.2 进程的优劣 12 ...

  3. 深入理解计算机系统——第12章 并发编程

    深入理解计算机系统--第12章 并发编程 并发编程 如果逻辑控制流在时间上重叠,那么就称它们是并发的.注意:核心是在时间上重叠. 操作系统内核运行多个应用程序采用了并发机制,但并发不止用于内核,也用于 ...

  4. 《深入理解计算机系统》读书笔记-016(第 12 章 并发编程)

    <深入理解计算机系统>读书笔记-016(第 12 章 并发编程) 太惨了,这章真心不大看得懂啊--等把前面的补上之后把读书笔记重新整理一下吧.这样看了跟没看也没啥区别了. 在线程中,不同于 ...

  5. python的GUI编程和tkinter学习笔记——第一个GUI程序

    一.第一个GUI程序 from tkinter import * from tkinter import messagebox# 创建窗口 root = Tk()btn01 = Button(root ...

  6. 小学C++编程入门书籍及相关资料介绍(二) 算法篇

    1.<我的第一本算法书> 1.481张步骤图详解26个算法和7个数据结构的基本原理 2.没有枯燥的理论和复杂的代码,易于理解 3.采用大量彩色图片,清晰直观,便于记忆 4.零基础也能轻松掌 ...

  7. OpenMAX编程-音视频等组件介绍

    我的小站 往期文章索引: 03 - OpenMAX编程-实现一个组件 02 - OpenMAX编程-数据结构 01 - OpenMAX编程-组件 00 - OpenMAX编程初识 导读: 本文着重介绍 ...

  8. 数据科学环境Anaconda及其相关组件介绍

    Anaconda:数据科学环境 数据科学环境 – 集成了大多数的数据科学工具包 Anaconda是一个用于科学计算的python发行版本,提供了包管理与环境管理的功能. 使用conda进行包管理,co ...

  9. EasyTrack项目管理软件的四大版本和相关组件介绍

    蓝云EasyTrack项目管理软件,遵循PMBOK和PRINCE2等国际通用项目管理理论,产品特性涵盖个人空间.管理驾驶舱.项目管理.项目组合管理.知识管理等,提供全面的项目管理解决方案. 蓝云Eas ...

最新文章

  1. Qt中用ODBC连接excel中文乱码问题
  2. 使用|DataDirectory| 的烦恼
  3. Android热更新方案Robust
  4. spring boot报错:Unable to start embedded Tomcat server 权限不够
  5. 判断数组中某个元素除自身外是否和其他数据不同_算法工程师要懂的3种算法数据结构:线性表详解...
  6. regex 正则表达式_使用正则表达式(Regex)删除HTML标签
  7. HTML5 Canvas(画布)
  8. paip.点击每个网页链接都提示下载的解决。
  9. python黑帽子(黑客与渗透测试编程之道)
  10. python柠檬班第三期错误报告
  11. java.sql.SQLException: Invalid utf8 character string: 'ACED00'
  12. cv2 EigenFace(特征脸)
  13. java 多张jpg合成tif后避免tif文件过大的方法
  14. 无需设置权限您照样可以访问OBS桶中的数据?
  15. RTthread的FAL组件介绍
  16. 简单电子病历功能设计
  17. Java进阶篇之接口
  18. 时隔多年,AI船长终于能扬帆启航?
  19. 不通过ROS直接查看URDF文件--增补
  20. 漫途MTW460SI采集终端助力解决水库大坝安全监测问题

热门文章

  1. ACE_TAO 014 ACE_Event_Handler
  2. Python基础知识梳理
  3. “支付清算”之信息流与资金流
  4. Linux网络服务-----测试网络命令与DHCP服务
  5. mindspore 1.3.0版本GPU环境下源码编译前的准备工作——依赖环境的安装
  6. pinyin4j新手教程
  7. 【Windows Esp32】基于 libjpeg-9e 编解码库的视频播放器
  8. 实战玩客云刷armbian及共享打印机教程
  9. Python华氏度和摄氏度之间的转换
  10. 【java】数组的定义以及初级运用精讲(起点闭关计划)