【python】图形用户界面学习之tkinter

认识tkinter

Tkinter是Python中内置的图形用户界面(GUI)库。它是Tk GUI工具包的接口,可以创建和管理窗口、按钮、标签、文本框等各种GUI组件,并与用户交互。

使用Tkinter,可以创建各种GUI应用程序,如桌面应用程序、图形编辑器、游戏等。它提供了丰富的功能和灵活的布局选项,可以满足大多数GUI应用程序的需求。

Tkinter的主要特点包括:

  1. 简单易用:Tkinter提供了一组简单的API,使得创建和管理GUI组件变得非常容易。
  2. 跨平台:Tkinter可以在多个平台上运行,包括Windows、Linux和Mac OS。
  3. 可扩展性:Tkinter支持使用不同的扩展库来增加功能,如ttk、Pillow等。
  4. 自定义样式:Tkinter支持自定义GUI组件的样式,可以通过修改默认配置参数来实现。
  5. 事件处理:Tkinter支持事件驱动的编程模型,可以响应用户的输入和其他事件。
  6. 丰富的组件:Tkinter提供了许多常用的GUI组件,如按钮、标签、文本框、滚动条等。

正文

tkinter是Python的标准库的一部分,所以不需要另外的第三方安装,直接import即可。

import tkinter

1、初用tkinter示例

import tkinter as tkdef login():username = username_entry.get()password = password_entry.get()# 在这里可以添加验证逻辑if username == "admin" and password == "admin123":login_label.config(text="登陆成功")else:login_label.config(text="用户名或密码错误")# 创建主窗口
root = tk.Tk()
root.title("登陆界面")# 创建用户名标签和输入框
username_label = tk.Label(root, text="用户名:")
username_label.pack()
username_entry = tk.Entry(root)
username_entry.pack()# 创建密码标签和输入框
password_label = tk.Label(root, text="密码:")
password_label.pack()
password_entry = tk.Entry(root, show="*")
password_entry.pack()# 创建登陆按钮
login_button = tk.Button(root, text="登陆", command=login)
login_button.pack()# 创建用于显示登陆结果的标签
login_label = tk.Label(root, text="")
login_label.pack()# 运行主循环
root.mainloop()

2、 认识一下tkinter的组件

Tkinter提供了许多不同的组件,可以用来创建用户界面。以下是一些常用的Tkinter组件:

  1. Label(标签):用于显示静态文本或图像。
  2. Button(按钮):用于响应用户点击事件。
  3. Entry(输入框):用于接收用户输入的文本(单行文本框)。
  4. Text(文本框):用于显示多行文本。
  5. Checkbutton(复选框):用于选择一个或多个选项。
  6. Radiobutton(单选按钮):用于从多个选项中选择一个。
  7. Listbox(列表框):用于显示一个选项列表。
  8. Combobox(下拉框):用于显示一个可选择的下拉列表。
  9. messageBox(消息框):用于显示应用程序的消息框。
  10. Menu(菜单):用于创建菜单栏和弹出菜单。
  11. Frame(框架):用于将其他组件组织成一个逻辑单元。
  12. Canvas(画布):用于绘制图形、图像和其他可视化元素。
  13. Scrollbar(滚动条):用于在长文本或大图像中进行滚动。

3、Label(标签)

import tkinter as tkroot = tk.Tk() #生成主窗口
root.title("使用标签")
label = tk.Label(root,text="这是一个标签",bg = '#eef',width = 30, #标签的宽度,单位是字体的大小height = 30)
label.config(font=("Arial", 10), fg="blue")
label.pack() #调用pack方法,添加到主窗口root.mainloop() #进入主循环

4、按钮(Button)

from tkinter import*
from tkinter import messageboxdef show_dialog():messagebox.showinfo("提示", "按钮被点击了!")root = Tk()
root.geometry("400x300")Button(root,text="点击我",command=show_dialog,width = 10, #标签的宽度,单位是字体的大小height = 1).pack()Button(root,text='退出',command=root.quit).pack()root.mainloop()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/1549.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT Webengine开发过程报错qml: Render process exited with code 159 (killed)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、解决方法二、补充说明总结 前言 基于QT的Webengine开发过程中,QT的官方示例quicknanobrowser也无法成功运行,程序运行后&#xff0…

git的学习

设置用户(目的在于可以在远端看到是谁提交了内容,更方便公司的管理) 1、设置全局用户(在家路径下创建用户,每个项目都用这一个用户)>: git config --global user.name manba >: git config --global …

使用Go语言和chromedp库下载Instagram图片:简易指南

摘要/导言 本文将介绍如何使用Go语言配合chromedp库来下载Instagram上的图片。我们将通过一个简单的示例来展示整个过程,包括如何设置爬虫代理IP以绕过网络限制。 背景/引言 在数据采集和自动化测试领域,Go语言以其出色的执行效率、简洁的语法和卓越的…

【科学研究】那些考进精英大学的农家子弟们

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验,帮助大家尽早适应研究生生活,尽快了解科研的本质。祝一切顺利!—…

智能化转型的得力助手:山海鲸智慧工厂解决方案详解

在数字化浪潮席卷全球的今天,工业领域正迎来一场前所未有的智能化变革。作为这一变革的领军者,山海鲸智慧工厂解决方案以其前瞻性的技术理念和创新的解决方案,为工业发展注入了强大的动力。 山海鲸智慧工厂解决方案的核心在于其高度的集成性…

Windows Server 2012 R2 中 IIS 8.5 安装证书

文章目录 前言一、获取服务器证书二、证书格式转换二、IIS8安装证书1.Win R 键打开运行窗口 → 输入【inetmgr】→ 点击【确定】2.打开【IIS管理器】→ 点击计算机名称 → 双击打开【服务器证书】3.点击【导入】4.选择证书文件 → 输入密码 → 点击【确定】5.选择要使用证书的…

14. Spring AOP(二)实现原理

源码位置:spring_aop 上一篇文章中我们主要学习了AOP的思想和Spring AOP使用,本文讲的是Spring是如何实现AOP的,Spring AOP是基于动态代理来实现AOP的,在将动态代理之前先来了解一下什么是代理模式。 1. 代理模式 在现实中就有许…

深度学习transformer架构详细详解

一、transformer的贡献 transformer架构的贡献:该架构只使用自注意力机制,没有使用RNN或卷积网络。且可以实现并行计算,加快模型训练速度。 (将所有的循环层全部换成:multi-headed self-attention) 二、t…

VisualStudio2019和2022开发Winform项目用到Devexpress组件报错不能正确加载的解决办法

1.报错1 问题简单描述:DevExpress.Utils.ImageCollectionStreamer 无法强制转换为 DevExpress.Utils.ImageCollectionStreamer。 原因分析:原项目某个组件使用的是 DevExpresss.XtraBars.v15.1版本,直接引用扩展控件改成引用v20.2。 解决办法…

负载均衡集群——Nginx

目录 1.Nginx反向代理实战 2.Nginx 反向代理和负载均衡实践 实验操作步骤 步骤 1 Nginx1 和 Nginx2 配置 步骤2 测试资源是否可用 步骤 3 安装和配置 Nginx 代理 步骤 4 代理服务器配置检测 步骤 5 在 Nginx1 和 Nginx2 配置虚拟主机 步骤 6 将虚拟主机添加入后端主机组…

BMR:基于Boostrapping多视图的虚假新闻检测

一、概述 文章提出了三种视图信息来表示一篇新闻:文本、图像结构、图像语义。然后设计了改进的多门混合专家系统(iMMoE)来进行信息融合。保留单模态信息来保证特征对新闻的保真性,增加的多模态信息能保证不同模态的一致性&#xf…

【KingSCADA】通过地址引用和弹窗模板实现设备控制

当相同的设备过多时,要做很多相同的弹窗,这种情况下可以通过地址引用和弹窗模板实现设备控制。 1.变量创建 2.画面开发 以阀门控制为例,只需要做一个阀门控制界面模板 3.地址引用 # 4.实现效果

每日算法4/21

LCR 073. 爱吃香蕉的狒狒 题目 狒狒喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。 狒狒可以决定她吃香蕉的速度 K (单位:根/小时)。每个小时,她将会选…

web自动化系列-selenium的3种弹框操作(十二)

在进行功能测试时 ,经常会遇到出现各种的弹出的提示 ,比如删除数据给出提示 、做某个操作时也会弹框给出一些友好提示 ,因为这些弹框都是做web操作时的一些常用组件 ,所以,selenium就不得不支持这些组件 。 1.弹框介绍…

随机森林计算指标重要性—从决策树到随机森林Python实现

文章目录 前言一、节点二、决策树2.1 案例分析——优良的水稻2.2 案例分析——家庭财富水平 三、随机森林三、Python代码实现3.1 关键问题3.1.1 节点的表示3.1.2 决策树的表示** 根节点划分左右子树的依据 **3.1.3 随机森林的构造与重要性的表示 3.2 节点类3.2 决策树类3.2.1 初…

安装Fake UserAgent 库的方法最终解答!_Python库

安装Python库Fake UserAgent 我的环境:Window10,Python3.7,Anaconda3,Pycharm2023.1.3 Fake UserAgent Fake UserAgent 是一个Python库,用于生成随机或特定的用户代理(UserAgent)字符串。用户…

明日周刊-第7期

转眼间就又快到了五一假期,小长假有什么计划吗。封面配图是杭州高架上的月季花,非常好看。 文章目录 一周热点资源分享言论歌曲推荐 一周热点 鸿蒙系统持续扩大影响力:近期,华为官方宣布广东省已有超过600款应用加入鸿蒙系统&…

【自用】个人の画版规范

供电 总结起来就是:从正面看。从左到右的顺序是 VCC GND VEE,若是单电源则是VEE GND GND。 尽量用3p的。 XH2.54 接线端子

每天五分钟机器学习:神经网络模型参数的选择

本文重点 在深度学习和人工智能的浪潮中,神经网络作为其中的核心力量,发挥着举足轻重的作用。然而,神经网络的性能并非一蹴而就,而是需要经过精心的参数选择和调优。 神经网络由大量的神经元组成,每个神经元之间通过权重进行连接。这些权重,以及神经元的偏置、激活函数…

9.Eureka服务发现+Ribbon+RestTemplate服务调用

order-service服务通过服务名称来代替 ip:port的方式访问user-service服务的接口。 原来的请求代码: Service public class OrderServiceImpl implements OrderService {Autowiredprivate OrderMapper orderMapper;Autowiredprivate RestTemplate restTemplate;Ov…