Python图形界面设计 Tkinter GUI编程组件的使用

2023-11-02

一、学习目标
1.GUI库
2.Tkinter库
3.导入Tkinter库
4.4.Tkinter窗口中显示中文
5.Tkinter 组件
二、重点知识
1.GUI库
GU1(Graphical User Interface,图形用户界面)是指采用图形方式显示的计算机操作用户界面。例如,运行Python 的 IDLE就是一种GUI,生活中登录网页的浏览器也是一种GUI,所以GUI应用广泛,可以实现可视化编程。
2.Tkinter库
Tkinter是 Python的标准GUI库,Python 使用 Tkinter 可以创建完整的GUI程序。在Tkinter中,可以直接使用命令按钮、文本框、标签、单选按钮等组件进行GUI编程,实现可视化效果。
3.导入Tkinter库
Tkinter库是 Python 安装包中内置的库,所以只要安装好 Python之后就能直接导入,而且运行Python的 IDLE(集成开发环境)也是用Tkinter编写而成的。导入 Tkinter库,直接借助命令import tkinter(全部小写字母)即可实现。
4.Tkinter窗口中显示中文
如果需要在组件中显示中文,则需要在编写的程序中首行添加“#-* - coding: UTF-8-*-”,用来指明字符编码为UTF-8格式。
5.Tkinter 组件
用 Tkinter创建的窗口如同一个容器,可以根据需要添加各种组件,便于使用。Tkinter 包含15种核心组件,用以实现不同的功能。各种组件及含义如表5-1所示。

控件 含义
Button 按钮控件,用于显示按钮
Canvas 画布控件,显示图形元素,例如线条或文本
Checkbutton 多选框控件,用于在程序中提供多项选择框
Entry 输入控件,用于显示简单的文本内容
Frame 框架控件,在屏幕上显示一个矩形区域,多用来作为容器
Label 标签控件,可以显示文本或位图
Listbox 列表框控件,用来显示一个选择列表
Menubutton 菜单按钮控件,用于显示菜单项
Menu 菜单控件,显示菜单栏、下拉菜单和弹出菜单
Message 消息控件,用来显示多行文本,与Label类似
Radiobutton 单选按钮控件,显示一个单选的按钮状态
Scale 范围控件,显示一个数值刻度,用于设置输出限定范围的数字区间
Scrollbar 滚动条控件,当内容超过可视化区域时使用,例如列表框
Text 文本控件,用于显示多行文本
Toplevel 容器控件,用来提供一个单独的对话框,和Frame类似
Spinbox 输入控件,与Entry 类似,但是可以指定输入范围值
PanedWindow 窗口布局管理插件,可以包含一个或者多个子控件
LabelFrame 简单的容器控件,常用于复杂的窗口布局
tkMessageBox 用于显示应用程序的消息框

三、实际运用
1.常用 Tkinter 组件
(1)按钮
Tkinter按钮组件用于在 Python应用程序中添加按钮,按钮上可以是文本或图像,按钮可用于监听用户的行为,使用tkinter,Button可以创建按钮。按钮的常用属性有前景、背景颜色、高度、宽度、文本内容等。
按钮控件的常用参数及含义如图:

参数 含义
activebackground 当鼠标放上去时,按钮的背景色
activeforeground 当鼠标放上去时,按钮的前景色
anchor 控制文本的位置,默认为中心
bd 按钮边框的大小,默认为 2像素
bg 指定按钮的背景颜色
command 按钮关联的函数,当按钮被单击时,执行该函数
fg 按钮的前景色(按钮文本的颜色)
font 文本字体
height 按钮的高度
image 按钮上要显示的图片
state 设置按钮组件状态,可选的有NORMAL、ACTIVE、DISAB
underline 下画线。默认按钮上的文本都不带下画线。取值表示带下画线的字符串位置索引,例如为0时,第一个字符带下画线;为1时,前两个字符带下画线,以此类推
width 按钮的宽度,如未设置此项,其大小自动适应按钮的内容(文本或图片的大小)
wraplength 限制按钮每行显示的字符数量
text 按钮的文本内容

1)Tkinter按钮组件的使用

import tkinter
root = tkinter.Tk()
def hello_click():
    your_button = tkinter.Button(root,anchor = tkinter.N,
                                 text = '单击确定时的显示按钮',
                                 bd = 3,
                                 underline = 3,
                                 activebackground = 'green',
                                 fg = 'red')
    your_button.pack()
my_button = tkinter.Button(root,anchor = tkinter.E,
                           text = '确定',
                           bg = 'red',
                           width = 4,
                           height = 3,
                           command = hello_click)
my_button.pack()
root.mainloop()

运行结果
在这里插入图片描述
2)Tkinter标签组件的使用

import tkinter
root = tkinter.Tk()
def hello_click():
    my_label = tkinter.Label(root,anchor = tkinter.W,
                                 text = '小标签',
                                 bd = 3,
                                 bg = 'yellow',
                                 height = 3,
                                 width = 20,
                                 fg = 'green')
    my_label.pack()
my_button = tkinter.Button(root,anchor = tkinter.E,
                           text = '单击按钮,显示标签',
                           bg = 'green',
                           width = 20,
                           height = 3,
                           command = hello_click)
my_button.pack()
root.mainloop()

运行结果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python图形界面设计 Tkinter GUI编程组件的使用 的相关文章

  • 使用 MongoDB 作为我们的主数据库,我应该使用单独的图数据库来实现实体之间的关系吗?

    我们目前正在为一家专业公司内部实施类似 CRM 的解决方案 由于存储信息的性质以及信息的不同值和键 我们决定使用文档存储数据库 因为它完全适合目的 在本例中我们选择 MongoDB 作为此 CRM 解决方案的一部分 我们希望存储实体之间的关
  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • 如何在 Matplotlib 饼图周围绘制箭头以将每个标签指向圆圈中各自的部分?

    我一直在用 Matplotlib 绘制一些图表 我有一个饼图 想要在图表周围绘制箭头 使每个标签都指向图表 我有一个例子 这是我当前的代码 import matplotlib pyplot as plt plt rcParams font
  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • 使用主题交换运行多个 Celery 任务

    我正在用 Celery 替换一些自制代码 但很难复制当前的行为 我期望的行为如下 创建新用户时 应向tasks与交换user created路由键 该消息应该触发两个 Celery 任务 即send user activate email
  • 在 Django Admin 中调整字段大小

    在管理上添加或编辑条目时 Django 倾向于填充水平空间 但在某些情况下 当编辑 8 个字符宽的日期字段或 6 或 8 个字符的 CharField 时 这确实是一种空间浪费 字符宽 然后编辑框最多可容纳 15 或 20 个字符 我如何告
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • Python 内置的 super() 是否违反了 DRY?

    显然这是有原因的 但我没有足够的经验来认识到这一点 这是Python中给出的例子docs http docs python org 2 library functions html super class C B def method se
  • 从 Powershell 脚本安装 Python

    当以管理员身份从 PowerShell 命令行运行以下命令时 可以在 Windows 11 上成功安装 Python c temp python 3 11 4 amd64 exe quiet InstallAllUsers 0 Instal
  • 当字段是数字时怎么说...在 mongodb 中匹配?

    所以我的结果中有一个名为 城市 的字段 结果已损坏 有时它是一个实际名称 有时它是一个数字 以下代码显示所有记录 db zips aggregate project city substr city 0 1 sort city 1 我需要修
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • 如何使用 AWS Lambda Python 读取 AWS S3 存储的 Word 文档(.doc 和 .docx)文件内容?

    我的场景是 我尝试使用 python 实现从 Aws Lambda 读取 AWS 存储的 S3 word 文档 doc 和 docx 文件内容 下面的代码是我使用的 我的问题是我可以获取文件名 但无法读取内容 def lambda hand
  • 如何将 Django 中的权限添加到模型并使用 shell 进行测试

    我在模型中添加了 Meta 类并同步了数据库 然后在 shell 中创建了一个对象 它返回 false 所以我真的无法理解错误在哪里或者缺少什么是否在其他文件中可能存在某种配置 class Employer User Employer in
  • 在virtualenv中下载sqlite3

    我正在尝试使用命令创建应用程序python3 manage py startapp webapp但我收到一条错误消息 django core exceptions ImproperlyConfigured 加载时出错 pysqlite2 或
  • 如何使用 PrimaryKeyRelatedField 更新多对多关系上的类别

    Django Rest 框架有一个主键相关字段 http www django rest framework org api guide relations primarykeyrelatedfield其中列出了我的 IDmany to m
  • 如何在 Flask 中的视图函数/会话之间传递复杂对象

    我正在编写一个 Web 应用程序 当 且仅当 用户登录时 该应用程序从第三方服务器接收大量数据 这些数据被解析为自定义对象并存储在list 现在 用户在应用程序中使用这些数据 调用不同的视图 例如发送不同的请求 我不确定什么是最好的模式在视
  • 将索引与值交换的最快方法

    考虑pd Series s s pd Series list abcdefghij list ABCDEFGHIJ s A a B b C c D d E e F f G g H h I i J j dtype object 交换索引和值并
  • 如何将Python3设置为Mac上的默认Python版本?

    有没有办法将 Python 3 8 3 设置为 macOS Catalina 版本 10 15 2 上的默认 Python 版本 我已经完成的步骤 看看它安装在哪里 ls l usr local bin python 我得到的输出是这样的

随机推荐

  • UAV021(五):STM32F429实现TIM6计时、TIM3输出4路PWM波、TIM5输入捕获

    目录 序 一 STM32F4定时器介绍 二 定时器配置 2 1 TIM6实现计数 2 2 TIM3输出4路PWM波 2 3 TIM5输入捕获 序 现在需要实现计时 输出PWM和输入捕获 其中计时实现0 1ms加1 用于陀螺仪积分计时 输出4
  • 离线win7上用anaconda离线创建虚拟环境

    本文所需文件的下载路径为 百度云链接 https pan baidu com s 14S xkERRhQVNfV dauVYzw 提取码 5hzn 第一步 安装anaconda win7系统不支持python3 9 因此不能在win7系统上
  • 凭借这5步,我30分钟学会了Python爬虫

    在不同公司的许多人可能出于各种原因需要从Internet收集外部数据 分析竞争 汇总新闻摘要 跟踪特定市场的趋势 或者收集每日股票价格以建立预测模型 无论你是数据科学家还是业务分析师 都可能时不时遇到这种情况 并问自己一个永恒的问题 我如何
  • win系统电脑如何打开sketch?

    2 个方法快速使用 Windows 系统打开 Sketch 文件 使用 Adobe XD 打开 Sketch 文件或者使用浏览器中就能做设计的即时设计直接打开 Sketch 文件 众所周知 Sketch 只能在 Mac 电脑上使用 因此只有
  • SQuirrel SQL Client数据库连接工具的配置与使用

    SQuirrel SQL Client介绍 SQuirrel SQL Client是一个用Java写的数据库客户端 用JDBC统一数据库访问接口以后 可以通过一个统一的用户界面来操作MySQL PostgreSQL MSSQL Oracle
  • Java Html嵌入applet 来读取客户端串口

    写在前面 之前没搞过html嵌入applet来读取本地客户端串口 就直接使用RXTXcom jar 来直接读取本机串口 这个是没问题的如下 RXTX 有三个文件 有针对操作系统64 还有32的 1 RXTXcomm jar 导入项目中 2
  • 【LaTeX】矢量图转为pdf格式(为了将高清矢量图插入LaTeX)

    在论文编写的时候 需要插入高清的矢量图 但是不同的图片生成软件 图片处理软件 论文编写软件所支持的矢量图格式都是不一致的 如 matplotlib可以保存的矢量图格式为 svg eps 等 visio可以保存的格式为 svg emf 等 但
  • 聊聊 Java 泛型

    概述 什么是泛型 为什么需要泛型 如何使用 是什么原理 如何改进 这基本上就是我们学习一项技术的正确套路 本文将按照以上顺序展开阐述 介绍我所了解的泛型 什么是泛型 泛型的本质是参数化类型 即给类型指定一个参数 然后在使用时再指定此参数具体
  • Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerExcepti

    问题描述 在异常信息当中我发现到一个redis连接不上的异常 项目当中我使用的是多环境 我运行的时候是运行的dev 这里的 profile active 我们在idea的maven的配置处进行快速的切换 启动项目的时候报的是连接不上redi
  • RabbitMq基础篇-09-channel接口常用几种参数详解

    文章目录 1 背景概述 2 通常参数解释 3 Channel一些Api解释 3 1 basicNack 不确认消息 3 2 basicReject 拒绝消息 3 3 RecoverOk 是否恢复消息到队列 3 4 exchangeDecla
  • PM产品经理面试 面经汇总

    系列文章目录 第一章 如何找到一份PM产品经理的工作 第二章 PM 面试技巧 文章目录 系列文章目录 一 PM面试准备 二 面试流程 1 行测 2 Behavioral Question 3 product design question
  • MySQL--主从复制--01--原理

    MySQL 主从复制 01 原理 一 故事 爸爸在酒店做厨师 正准备做西红柿炒蛋 妈妈也想做 于是让女儿给爸爸打电话 爸爸接到电话后 于是就把他目前正在做的事情 洗菜 切菜 告诉女儿 女儿记在笔记里 妈妈看笔记 按笔记的内容做菜 就这样爸爸
  • 绝对想不到,Chatgpt 优缺点都有这些

    ChatGPT 是一种基于自然语言处理 NLP 模型的对话生成程序 它的核心是通过机器学习算法训练得到的语言模型 GPT Generative Pre trained Transformer 是ChatGPT的基础 这是一种使用Transf
  • 寻找一维数组的连续数值波峰波谷

    如果一维数组中有波峰和波谷 但是波峰会持续好几个同样的数值或者差异很小而不是只有一个数值 波谷同理 要去寻找这种类型的波峰波谷就会有点难度 数据类似这种 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0016790
  • AH协议与ESP协议简析

    http www gxu edu cn college hxhgxy sec COURSE ch12 2 1 htm http www gxu edu cn college hxhgxy sec COURSE ch12 2 2 htm ht
  • MATLAB实现dijkstra算法的障碍物规避

    MATLAB实现dijkstra算法的障碍物规避 在自主导航系统中 机器人需要能够避开障碍物以安全地到达目标点 其中 dijkstra算法是一种常用的路径规划算法 能够在无权重图中求解最短路径 在本篇文章中 我们将介绍如何使用MATLAB实
  • Java 的VO、DTO、TO、BO等概念总结

    当涉及到Java中的数据传输和对象封装时 有几个常见的概念 它们在不同的上下文中具有不同的用途 以下是这些概念的总结 VO Value Object 含义 VO表示值对象 用于封装一组相关的数据字段 通常没有业务逻辑 用途 VO通常用于数据
  • PBFT共识算法原理

    1 容错类型 PBFT假定错误可以是拜占庭类型的 也就是说可以使任意类型的错误 比如节点作恶 说谎等 这有别于crash down类型的错误 raft paxos这类共识算法只能允许crash down类型错误 节点只能crash而不能产生
  • 推荐三款适合运维小白的网络监测工具

    对于刚刚步入职场的运维小白而言 面对工作中的突发情况时常会感到手忙脚乱 为了帮助他们更好地应对这些挑战 本文将介绍三款特别适合运维新手使用的网络监测工具 1 Zabbix是一个功能强大的网络监控系统 可以监视各种网络设备的性能指标 应用的运
  • Python图形界面设计 Tkinter GUI编程组件的使用

    一 学习目标 1 GUI库 2 Tkinter库 3 导入Tkinter库 4 4 Tkinter窗口中显示中文 5 Tkinter 组件 二 重点知识 1 GUI库 GU1 Graphical User Interface 图形用户界面