Python图形界面编程(二)
目录
六、控件属性和事件响应
1、基本的操控
2、示例
七、对话框
六、控件属性和事件响应
1、基本的操控
有的控件有对对应的函数,可以用来设置以及获取属性或者设置属性,或者以字典下标的形式来获取,设置对应的属性:
比如,我们可以用字典下标的形式来更改一些属性:
a_label = tk.Label(win , text = "请登录!")
a_label["text"] = "登录成功!"
以及,面对一些包含文字的Text,我们有对应的函数来对其内容进行获取:
txt = tk.Text(win)
txt.get(0.0 , tk.END)
#0.0就是从第0行,第0列开始取,end就是结尾
有的控件需要我们把它和一个变量相关联,通过操作变量,来改变控件的属性:
import tkinter as tkwin = tk.Tk() #生成一个窗口
win.title("Hello World") #指定窗口标题a = tk.StringVar(win)a.set("sin(x)")
entry = tk.Entry(win , textvariable = a)
entry.pack()print(a.get())
win.mainloop() #显示窗口
除了上述这些,一些控件还可以通过command参数和bind函数来操作控件
2、示例
我们来制作一个简单的登录窗口,如果输入正确的密码和用户名,就显示登陆成功:
import tkinter as tkdef login_button_click() : #针对点击登录这个按钮进行一些设置if username.get() == "pku" and password.get() == "123" : #如果用户是pku,密码是123lbHint["text"] = "登录成功!"lbHint["fg"] = "black"#就显示登录成功,并且这个字体是黑色的else :username.set("")password.set("") #反之,如果错了,我们就让那两个空的值变成空串,就是起到一个清空字符串的目的lbHint["text"] = "用户名或密码错误!"lbHint["fg"] = "red"#并且要显示用户名或密码错误,然后字体是红色的#(上面这几个对于文字的设置,都是通过字典下标的方式)def password_show() : #对于密码框的密码显示的设置if showPassword.get() : #检查showPassword的BooleanVa值是不是Truepassword_enter["show"] = ""else :password_enter["show"] = "*"#是就显示,不是就把密码显示成*win = tk.Tk()
win.title("欢迎使用登陆系统") #经典的创建窗口和窗口标题username = tk.StringVar()
password = tk.StringVar()
#创建获取用户名和密码lbHint = tk.Label(win , text = "请登录")
lbHint.grid(row = 0 , column = 0 , columnspan = 2) #设置一个小标题
username_label = tk.Label(win , text = "用户名:")
username_label.grid(row = 1 , column = 0 , padx = 5 , pady = 5)
password_label = tk.Label(win , text = "密码:")
password_label.grid(row = 2 , column = 0 , padx = 5 , pady = 5)
#上面四行就是设置用户名和密码这俩标签的username_enter = tk.Entry(win , textvariable = username)
username_enter.grid(row = 1 , column = 1 , padx = 5 , pady = 5)
password_enter = tk.Entry(win , textvariable = password , show = "*") #show就是显示了刚输入进去的时候是*
password_enter.grid(row = 2 , column = 1 , padx = 5 , pady = 5)
#这四行就是用户名和密码的输入框a_button = tk.Button(win , text = "确认" , command = login_button_click)
a_button.grid(row = 4 , column = 0 , padx = 5 , pady = 5)
other_button = tk.Button(win , text = "退出" , command = win.quit)
other_button.grid(row = 4 , column = 1 , padx = 5 , pady = 5)
#这四行就是登录和退出的,上面有一个command参数,就是当我们点击控件时,进行的操作,一个是执行login_button_click函数,一个是win.quit退出窗口showPassword = tk.BooleanVar() #给showPassword创建一个布尔对象,里面只有T和F
showPassword.set(False) #把值设置为Falsechk_show_password = tk.Checkbutton(win , text = "显示密码" , variable = showPassword , command = password_show)
chk_show_password.grid(row = 3 , column = 0 , padx = 5 , pady = 5)
#设置一个勾选框,variable是showPassword,刚刚被设置为了False,就是默认不显示win.mainloop()
七、对话框
对话框可以弹出小窗口和用户进行交互,或者显示信息
比如文件对话框,可以打开文件窗口,或者我们可以自定义一个对话框,比如当我们点击登录按钮时,可以弹出一个小窗,让我们输入密码
我们下面举几个小窗口例子:
import tkinter as tk
from tkinter import messagebox
from tkinter import simpledialogwin = tk.Tk()
win.title("Hello")def a_warning_win() :messagebox.showinfo("Dialog" , "Warning!")def a_yesno_win() :messagebox.askokcancel("Dialog" , "are you sure?")def a_input_win() :simpledialog.askfloat("Dialog" , "请输入金额")def a_error_win() :messagebox.showerror("Dialog" , "错误!")a_button = tk.Button(win , text = "Warning" , command = a_warning_win)
a_button.grid(row = 0 , column = 0 , padx = 5 , pady = 5)
#注意窗口a_button_two = tk.Button(win , text = "Yes-or-No" , command = a_yesno_win)
a_button_two.grid(row = 0 , column = 1 , padx = 5 , pady = 5)
#确定取消窗口a_button_three = tk.Button(win , text = "Input" , command = a_input_win)
a_button_three.grid(row = 1 , column = 0 , padx = 5 , pady = 5)
#输入窗口(数字)a_button_four = tk.Button(win , text = "Error" , command = a_error_win)
a_button_four.grid(row = 1 , column = 1 , padx = 5 , pady = 5)
#报错窗口win.mainloop()
以上就是Python图形界面编程(二)的全部内容:)
相关文章:
Python图形界面编程(二)
目录 六、控件属性和事件响应 1、基本的操控 2、示例 七、对话框 六、控件属性和事件响应 1、基本的操控 有的控件有对对应的函数,可以用来设置以及获取属性或者设置属性,或者以字典下标的形式来获取,设置对应的属性: 比如&…...
MongoDB 图片 URL 存储异常问题解决方案
项目场景: 在开发一个在线考试系统时,前端需要提交学生的答题截图到后端,后端使用 MinIO 存储图片并保存图片 URL 到 MongoDB 数据库。系统需要支持多次提交图片,并将所有图片 URL 以数组形式存储在 MongoDB 的 screenShot 字段中…...
run code执行ts配置
1、全局安装typescript npm install –g typescript 执行tsc –v,可输出版本号,代表安装成功 2、创建tsConfig文件 npx tsc –init 创建成功目录下会出现tsconfig.json文件 3、安装ts-node,支持执行运行ts文件 npm install –g ts-node 控制…...
Python 虚拟环境管理:venv 与 conda 的选择与配置
文章目录 前言一、虚拟环境的核心价值1.1 依赖冲突的典型场景1.2 隔离机制实现原理 二、venv 与 conda 的架构对比2.1 工具定位差异2.2 性能基准测试(以创建环境 安装 numpy 为例) 三、venv 的配置与最佳实践3.1 基础工作流3.2 多版本 Python 管理 四、…...
【前缀和计算和+哈希表查找次数】Leetcode 560. 和为 K 的子数组
题目要求 给定一个整数数组 nums 和一个整数 k,统计并返回该数组中和为 k 的子数组的个数。 子数组是数组中元素的连续非空序列。 示例 1 输入:nums [1, 1, 1], k 2 输出:2 示例 2 输入:nums [1, 2, 3], k 3 输出…...
[原创](现代Delphi 12指南):[macOS 64bit App开发]:如何使用CFStringRef类型字符串?
[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C++、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、…...
89.WPF 中实现便捷的数字输入框:DecimalUpDown 控件的使用 WPF例子 C#例子.
在 WPF 开发中,经常会遇到需要用户输入数字的场景。为了提供更好的用户体验,我们可以使用一个功能强大的控件——DecimalUpDown,它来自第三方库 Extended WPF Toolkit。这个控件不仅支持用户通过键盘输入数字,还支持通过鼠标滚轮或…...
【时时三省】(C语言基础)循环程序举例
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 例题: 用公式4/π≈1-3/1+5/1-7/1+...求π的近似值,直到发现某一项的绝对值小于10的-6次方为止(该项不累加)。 解题思路: 这是求值的近似方法中的一种。求π值可以用不同的近似方法。如下面的表达式都可以…...
Linux常用中间件命令大全
1.nginx 执行命令之前需要先进入sbin目录查看nginx版本: ./nginx -v检查配置文件正确性: ./nginx -t启动nginx服务: ./nginx停止nginx服务: ./nginx -s stop启动完成后可以查看nginx进程: ps -ef|grep nginx可以通过绝…...
数图信息科技邀您共赴第二十五届中国零售业博览会
数图信息科技邀您共赴第二十五届中国零售业博览会 2025年5月8日至10日,数图信息科技将精彩亮相第二十五届中国零售业博览会(CHINASHOP 2025),与行业伙伴共探零售数字化转型新机遇! 数图展会新品抢先看 数图商品一…...
路由器的基础配置全解析:静态动态路由 + 华为 ENSP 命令大全
🚀 路由器的基础配置全解析:静态&动态路由 华为 ENSP 命令大全 🌐 路由器的基本概念📍 静态路由配置📡 动态路由协议:RIP、OSPF、BGP🖥 华为 ENSP 路由器命令大全🔹 路由器基本…...
「Java EE开发指南」如何使用MyEclipse的可视化JSF编辑器设计JSP?(一)
本教程介绍在MyEclipse中开发EJB 3无状态会话bean,由于JPA实体和EJB 3实体非常相似,因此本教程不涉及EJB 3实体Bean的开发。在本教程中,您将学习如何: Visual JSF Designer(可视化JSF设计器)的目标是使创建…...
【设计】接口幂等性设计
1. 幂等性定义 接口幂等性: 无论调用次数多少,对系统状态的影响与单次调用相同。 比如用户支付接口因网络延迟重复提交了三次。 导致原因: 用户不可靠(手抖多点)网络不可靠(超时重传)系统不可…...
深入理解机器学习:人工智能的核心驱动力
在当今数字化时代,机器学习作为人工智能领域的关键技术,正以前所未有的速度改变着我们的生活和工作方式。从智能语音助手到精准的医疗诊断,从个性化的推荐系统到自动驾驶汽车,机器学习的应用无处不在,其影响力深远而广…...
CI/CD自动化部署(持续集成和持续交付/部署)
持续集成:开发人员频繁地将代码集成到共享仓库,然后自动运行测试持续交付:自动准备好发布,但需要手动触发部署持续部署:完全自动化的,不需要人工干预 流程: 比如,当开发人员提交代…...
如何理解计算机网卡完成数据传输的串并转换
计算机网卡的串并转换(串行-并行转换)是网络通信中的一个关键硬件功能,主要涉及数据的传输形式转换。它的核心目的是解决计算机内部处理数据的方式(并行)与网络传输数据的方式(串行)之间的差异。以下是通俗易懂的解释: 1. 串行传输 vs. 并行传输 并行传输: 计算机内部…...
基于Axure的动态甘特图设计:实现任务增删改与时间拖拽交互
甘特图作为项目管理核心工具,其动态交互能力直接关系到团队协作效率。本文以Axure RP 9为载体,通过中继器(Repeater)与动态面板(Dynamic Panel)的深度结合,设计一款支持任务名称动态编辑、时间轴…...
XMOS空间音频——在任何设备上都能提供3D沉浸式空间音频且实现更安全地聆听
2025年3月,全球规模最大的嵌入式行业盛会——德国纽伦堡国际嵌入式展(Embedded World 2025,EW 25)圆满落幕。在这场汇聚全球 950 家展商、3 万余专业观众的科技盛宴中,XMOS 展位人头攒动,多款尖端产品和多…...
使用功能包组织C++节点的具体教程
在 ROS(Robot Operating System)中,使用功能包(package)来组织 C 节点是一种常见且有效的方式,它能让代码结构更清晰、便于管理和复用。 1. 环境准备 确保已经安装了 ROS,这里以 ROS 2 Humble…...
免费的车牌势识别系统
背景 就是想要一个车牌识别系统 直接上教程 需要首先安装python3 然后执行下面的命令 pip install hyperlpr3 lpr3 rest --port 9999 --host 0.0.0.0 --workers 1 访问地址地址 # 9999 与上述端口一致 http://你的ip:9999/api/v1/docs 测试效果 准备一张图片 lpr3 sa…...
微信小程序蓝牙连接打印机打印单据完整Demo【蓝牙小票打印】
文章目录 一、准备工作1. 硬件准备2. 开发环境 二、小程序配置1. 修改app.json 三、完整代码实现1. pages/index/index.wxml2. pages/index/index.wxss3. pages/index/index.js 四、ESC/POS指令说明五、测试流程六、常见问题解决七、进一步优化建议 下面我将提供一个完整的微信…...
阿里云基于本地知识库构建RAG应用 | 架构与场景
RAG(检索增强生成,Retrieval-Augmented Generation)是一种结合了检索和生成技术的框架,旨在通过外部知识库的检索来增强大语言模型(LLM)的生成能力。 其核心架构包括两个主要部分: 检索模块&a…...
Python----深度学习(基于深度学习Pytroch簇分类,圆环分类,月牙分类)
一、引言 深度学习的重要性 深度学习是一种通过模拟人脑神经元结构来进行数据学习和模式识别的技术,在分类任务中展现出强大的能力。 分类任务的多样性 分类任务涵盖了各种场景,例如簇分类、圆环分类和月牙分类,每种任务都有不同的…...
Python图像处理——基于Retinex算法的低光照图像增强系统
1.项目内容 (1)算法介绍 ①MSRCR (Multi-Scale Retinex with Color Restoration) MSRCR 是多尺度 Retinex 算法(MSR)的扩展版,引入了色彩恢复机制以进一步提升图像增强质量。MSR 能有效地压缩图像动态范围ÿ…...
【网络】MQTT协议
MQTT协议全称是(Message Queuing Telemetry Transport),即消息队列遥测传输协议 是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上 MQTT通信模型 特点: 1、客户端使用它连…...
python基础-requests结合AI实现自动化数据抓取
Python Requests高级指南:从入门到精通 概述 Requests 是一个基于 urllib3 封装的 Python HTTP 客户端库,提供了极其简洁且人性化的接口,使得发送 HTTP 请求和处理响应变得轻而易举。它支持常见的 HTTP 方法(GET、POST、PUT、DE…...
边界凸台建模与实例
文章目录 边界凸台特征耳机案例瓶子 边界凸台特征 两侧对称拉伸最上面的圆柱 同过两点一基准面画草图,在基准面上画椭圆 隐藏无关的实体和草图,以便椭圆的端点能与线给穿透约束,下面的点与下面的线也给穿透,短轴长给35(…...
Kafka和Spark-Streaming
Kafka和Spark-Streaming 一、Kafka 1、Kafka和Flume的整合 ① 需求1:利用flume监控某目录中新生成的文件,将监控到的变更数据发送给kafka,kafka将收到的数据打印到控制台: 在flume/conf下添加.conf文件, vi flume…...
5.2 AutoGen:支持多Agent对话的开源框架,适合自动化任务
AutoGen作为由Microsoft开发的开源框架,已成为构建多Agent对话系统和自动化任务的领先工具。其核心在于通过自然语言和代码驱动的多Agent对话,支持复杂任务的自治执行或结合人类反馈优化,广泛应用于客服自动化、金融分析、供应链优化和医疗诊…...
探索亚马逊云科技:开启您的云计算之旅
前言 在当今数字化时代,云计算已成为企业和个人不可或缺的技术基础设施。作为全球领先的云服务提供商,亚马逊云科技(Amazon Web Services)为您提供强大、可靠且安全的云计算解决方案。 想要立即体验亚马逊云科技的强大功能&#x…...
2023年第十四届蓝桥杯Scratch02月stema选拔赛真题——算式题
完整题目可点击下方地址查看,支持在线编程,支持源码和素材获取: 算式题_scratch_少儿编程题库学习中心-嗨信奥https://www.hixinao.com/tiku/scratch/show-4267.html?_shareid3 程序演示可点击下方地址查看,支持源码和素材获取&…...
霍格软件测试-JMeter高级性能测试一期
课程大小:32.2G 课程下载:https://download.csdn.net/download/m0_66047725/90631395 更多资源下载:关注我 当下BAT、TMD等互联网一线企业已几乎不再招募传统测试工程师,而只招测试开发工程师!在软件测试技术栈迭代…...
django.db.utils.OperationalError: (1050, “Table ‘你的表名‘ already exists“)
这个错误意味着 Django 尝试执行迁移时,发现数据库中已经有一张叫 你的表名的表了,但这张表不是通过 Django 当前的迁移系统管理的,或者迁移状态和数据库实际状态不一致。 🧠 可能出现这个问题的几种情况: 1.你手动创…...
分布式ID生成方案详解
分布式ID生成方案详解 一、问题背景 分库分表场景下,传统自增ID会导致不同库/表的ID重复,需要分布式ID生成方案解决以下核心需求: •全局唯一性:跨数据库/表的ID不重复 •有序性:利于索引优化和范围查询 •高性能&…...
短视频矩阵系统可视化剪辑功能开发,支持OEM
在短视频营销与内容创作竞争日益激烈的当下,矩阵系统中的可视化剪辑功能成为提升内容产出效率与质量的关键模块。它以直观的操作界面和强大的编辑能力,帮助创作者快速将创意转化为优质视频。本文将结合实际开发经验,从需求分析、技术选型到核…...
使用开源免费雷池WAF防火墙,接入保护你的网站
使用开源免费雷池WAF防火墙,接入保护你的网站 大家好,我是星哥,昨天介绍了《开源免费WEB防火墙,不让黑客越雷池一步!》链接:https://mp.weixin.qq.com/s/9TOXth3128N6PtXhaWI5aw 今天讲一下如何把网站接入…...
Python-Agent调用多个Server-FastAPI版本
Python-Agent调用多个Server-FastAPI版本 Agent调用多个McpServer进行工具调用 1-核心知识点 fastAPI的快速使用agent调用多个server 2-思路整理 1)先把每个子服务搭建起来2)再暴露一个Agent 3-参考网址 VSCode配置Python开发环境:https:/…...
spark-standalone模式
Spark Standalone模式是Spark集群的一种部署方式,即在没有使用其他资源管理器(如YARN或Mesos)的情况下,在Spark自身提供的集群管理器中部署和运行Spark应用程序。 在Spark Standalone模式下,有一个主节点(…...
3、LangChain基础:LangChain Chat Model
Prompt templates: Few shot、Example selector Few shot(少量示例) 创建少量示例的格式化程序 创建一个简单的提示模板,用于在生成时向模型提供示例输入和输出。向LLM提供少量这样的示例被称为少量示例,这是一种简单但强大的指导生成的方式,在某些情况下可以显著提高模型…...
信创时代开发工具选择指南:国产替代背景下的技术生态与实践路径
🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开…...
Coze高阶玩法 | 使用Coze制作思维认知提升视频,效率提升300%!(附保姆级教程)
目录 一、工作流整体设计 二、制作工作流 2.1 开始节点 2.2 大模型 2.3 文本处理 2.4 代码 2.5 批处理 2.6 选择器 2.7 画板_视频模板 2.8 合成音频 2.9 图片与音频合并视频 2.10 视频合并 2.11 结束节点 三、智能体应用体验 中午吃饭的时候,刷到了一个思维认知…...
数据湖DataLake和传统数据仓库Datawarehouse的主要区别是什么?优缺点是什么?
数据湖和传统数据仓库的主要区别 以下是数据湖和传统数据仓库的主要区别,以表格形式展示: 特性数据湖传统数据仓库数据类型支持结构化、半结构化及非结构化数据主要处理结构化数据架构设计扁平化架构,所有数据存储在一个大的“池”中多层架…...
GStreamer 简明教程(十一):插件开发,以一个音频生成(Audio Source)插件为例
系列文章目录 GStreamer 简明教程(一):环境搭建,运行 Basic Tutorial 1 Hello world! GStreamer 简明教程(二):基本概念介绍,Element 和 Pipeline GStreamer 简明教程(三…...
chrome://inspect/#devices 调试 HTTP/1.1 404 Not Found 如何解决
使用chrome是需要翻墙的,可以换个浏览器进行使用 可以使用edge浏览器,下载地址如下 微软官方edge浏览器|Mac版:浏览更智能,工作更高效 下载Edge浏览器 edge://inspect/#devices 点击inspect即可 qq浏览器 1. 下载qq浏览器 2. …...
RFID使用指南
## 什么是RFID? RFID(Radio Frequency Identification)即射频识别技术,是一种通过无线电波进行非接触式数据交换的技术。 ## RFID系统的主要组成部分 1. **RFID标签(Tag)** - 包含芯片和天线 - 分为有源标…...
初识Redis · 哨兵机制
目录 前言: 引入哨兵 模拟哨兵机制 配置docker环境 基于docker环境搭建哨兵环境 对比三种配置文件 编排主从节点和sentinel 主从节点 sentinel 模拟哨兵 前言: 在前文我们介绍了Redis的主从复制有一个最大的缺点就是,主节点挂了之…...
JAVA设计模式——(七)代理模式
JAVA设计模式——(七)代理模式 介绍理解实现抽象主题角色具体主题角色代理类测试 应用 介绍 代理模式和装饰模式还是挺像的。装饰模式是抽象类对装饰对象的实现,在继承装饰对象。代理模式则是直接对代理对象的实现。 理解 代理模式可以看成…...
Redis 原子操作
文章目录 前言✅ 一、什么是「原子操作」?🔍 二、怎么判断一个操作是否原子?🧪 三、项目中的原子 vs 非原子案例(秒杀系统)✅ 原子性(OK)❌ 非原子性(高风险)…...
待办事项日历组件实现
待办事项日历组件实现 今天积累一个简易的待办事项日历组件的实现方法。 需求: 修改样式,变成符合项目要求的日历样式日历上展示待办事项提示(有未完成待办:展示黄点,有已完成待办:展示绿点)…...
Flask 请求数据获取方法详解
一、工作原理 在 Flask 中,所有客户端请求的数据都通过全局的 request 对象访问。该对象是 请求上下文 的一部分,仅在请求处理期间存在。Flask 在收到请求时自动创建 request 对象,并根据请求类型(如 GET、POST)和内容…...