第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所有组件简介
组件 | 功能 |
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相关组件介绍相关推荐
- 第12章 元编程与注解、反射
第12章 元编程与注解.反射 反射(Reflection)是在运行时获取类的函数(方法).属性.父类.接口.注解元数据.泛型信息等类的内部信息的机制.这些信息我们称之为 RTTI(Run-Time T ...
- CSAPP:第12章 并发编程
CSAPP:第12章 并发编程 文章目录 CSAPP:第12章 并发编程 12.1 基于进程的并发编程(Process-based) 12.1.1 基于进程的并发服务器 12.1.2 进程的优劣 12 ...
- 深入理解计算机系统——第12章 并发编程
深入理解计算机系统--第12章 并发编程 并发编程 如果逻辑控制流在时间上重叠,那么就称它们是并发的.注意:核心是在时间上重叠. 操作系统内核运行多个应用程序采用了并发机制,但并发不止用于内核,也用于 ...
- 《深入理解计算机系统》读书笔记-016(第 12 章 并发编程)
<深入理解计算机系统>读书笔记-016(第 12 章 并发编程) 太惨了,这章真心不大看得懂啊--等把前面的补上之后把读书笔记重新整理一下吧.这样看了跟没看也没啥区别了. 在线程中,不同于 ...
- python的GUI编程和tkinter学习笔记——第一个GUI程序
一.第一个GUI程序 from tkinter import * from tkinter import messagebox# 创建窗口 root = Tk()btn01 = Button(root ...
- 小学C++编程入门书籍及相关资料介绍(二) 算法篇
1.<我的第一本算法书> 1.481张步骤图详解26个算法和7个数据结构的基本原理 2.没有枯燥的理论和复杂的代码,易于理解 3.采用大量彩色图片,清晰直观,便于记忆 4.零基础也能轻松掌 ...
- OpenMAX编程-音视频等组件介绍
我的小站 往期文章索引: 03 - OpenMAX编程-实现一个组件 02 - OpenMAX编程-数据结构 01 - OpenMAX编程-组件 00 - OpenMAX编程初识 导读: 本文着重介绍 ...
- 数据科学环境Anaconda及其相关组件介绍
Anaconda:数据科学环境 数据科学环境 – 集成了大多数的数据科学工具包 Anaconda是一个用于科学计算的python发行版本,提供了包管理与环境管理的功能. 使用conda进行包管理,co ...
- EasyTrack项目管理软件的四大版本和相关组件介绍
蓝云EasyTrack项目管理软件,遵循PMBOK和PRINCE2等国际通用项目管理理论,产品特性涵盖个人空间.管理驾驶舱.项目管理.项目组合管理.知识管理等,提供全面的项目管理解决方案. 蓝云Eas ...
最新文章
- Qt中用ODBC连接excel中文乱码问题
- 使用|DataDirectory| 的烦恼
- Android热更新方案Robust
- spring boot报错:Unable to start embedded Tomcat server 权限不够
- 判断数组中某个元素除自身外是否和其他数据不同_算法工程师要懂的3种算法数据结构:线性表详解...
- regex 正则表达式_使用正则表达式(Regex)删除HTML标签
- HTML5 Canvas(画布)
- paip.点击每个网页链接都提示下载的解决。
- python黑帽子(黑客与渗透测试编程之道)
- python柠檬班第三期错误报告
- java.sql.SQLException: Invalid utf8 character string: 'ACED00'
- cv2 EigenFace(特征脸)
- java 多张jpg合成tif后避免tif文件过大的方法
- 无需设置权限您照样可以访问OBS桶中的数据?
- RTthread的FAL组件介绍
- 简单电子病历功能设计
- Java进阶篇之接口
- 时隔多年,AI船长终于能扬帆启航?
- 不通过ROS直接查看URDF文件--增补
- 漫途MTW460SI采集终端助力解决水库大坝安全监测问题
热门文章
- ACE_TAO 014 ACE_Event_Handler
- Python基础知识梳理
- “支付清算”之信息流与资金流
- Linux网络服务-----测试网络命令与DHCP服务
- mindspore 1.3.0版本GPU环境下源码编译前的准备工作——依赖环境的安装
- pinyin4j新手教程
- 【Windows Esp32】基于 libjpeg-9e 编解码库的视频播放器
- 实战玩客云刷armbian及共享打印机教程
- Python华氏度和摄氏度之间的转换
- 【java】数组的定义以及初级运用精讲(起点闭关计划)