tkinter 综合应用

创建一个功能全面的 tkinter GUI 应用程序示例,展示一些常用的小部件和功能,包括菜单、按钮、标签、文本框、复选框、单选按钮、列表框、滚动条、对话框等。这个示例将展示如何将这些组件结合在一起,构建一个综合的 GUI 应用程序。

完整示例:tkinter 综合应用

import tkinter as tk
from tkinter import ttk, messagebox, filedialogdef on_button_click():messagebox.showinfo("信息", "按钮被点击了!")def on_menu_click():messagebox.showinfo("信息", "菜单项被选择了!")def open_file():file_path = filedialog.askopenfilename()if file_path:with open(file_path, 'r') as file:content = file.read()text_box.delete('1.0', tk.END)text_box.insert(tk.END, content)def save_file():file_path = filedialog.asksaveasfilename(defaultextension=".txt")if file_path:with open(file_path, 'w') as file:content = text_box.get('1.0', tk.END)file.write(content)def on_select(event):selected = list_box.get(list_box.curselection())label.config(text=f"选择: {selected}")def on_checkbox_change():status = "选中" if check_var.get() else "未选中"messagebox.showinfo("信息", f"复选框{status}")def on_radiobutton_change():messagebox.showinfo("信息", f"选择了: {radio_var.get()}")# 创建主窗口
root = tk.Tk()
root.title("tkinter 综合应用")
root.geometry("600x400")# 创建菜单
menu_bar = tk.Menu(root)
file_menu = tk.Menu(menu_bar, tearoff=0)
file_menu.add_command(label="打开", command=open_file)
file_menu.add_command(label="保存", command=save_file)
file_menu.add_separator()
file_menu.add_command(label="退出", command=root.quit)
menu_bar.add_cascade(label="文件", menu=file_menu)edit_menu = tk.Menu(menu_bar, tearoff=0)
edit_menu.add_command(label="复制", command=on_menu_click)
edit_menu.add_command(label="粘贴", command=on_menu_click)
menu_bar.add_cascade(label="编辑", menu=edit_menu)root.config(menu=menu_bar)# 创建标签
label = tk.Label(root, text="欢迎使用tkinter应用", font=("Arial", 14))
label.pack(pady=10)# 创建按钮
button = tk.Button(root, text="点击我", command=on_button_click)
button.pack(pady=10)# 创建文本框
text_box = tk.Text(root, height=5, width=40)
text_box.pack(pady=10)# 创建复选框
check_var = tk.BooleanVar()
check_box = tk.Checkbutton(root, text="选项1", variable=check_var, command=on_checkbox_change)
check_box.pack(pady=10)# 创建单选按钮
radio_var = tk.StringVar()
radio_button1 = tk.Radiobutton(root, text="选项A", variable=radio_var, value="选项A", command=on_radiobutton_change)
radio_button2 = tk.Radiobutton(root, text="选项B", variable=radio_var, value="选项B", command=on_radiobutton_change)
radio_button1.pack(pady=10)
radio_button2.pack(pady=10)# 创建列表框
list_box = tk.Listbox(root)
items = ["项目1", "项目2", "项目3", "项目4"]
for item in items:list_box.insert(tk.END, item)
list_box.bind('<<ListboxSelect>>', on_select)
list_box.pack(pady=10)# 创建滚动条
scroll_bar = ttk.Scrollbar(root, orient=tk.VERTICAL, command=text_box.yview)
scroll_bar.pack(side=tk.RIGHT, fill=tk.Y)
text_box.config(yscrollcommand=scroll_bar.set)# 运行主循环
root.mainloop()

功能解释:

  1. 菜单:包含“文件”和“编辑”菜单,可以打开文件、保存文件和退出应用。
  2. 标签:显示欢迎信息。
  3. 按钮:点击按钮显示消息框。
  4. 文本框:允许用户输入和显示文本。
  5. 复选框:选择选项时显示相应的消息。
  6. 单选按钮:选择选项时显示相应的消息。
  7. 列表框:选择列表项时更新标签显示选择内容。
  8. 滚动条:为文本框添加垂直滚动条。

这个示例展示了 tkinter 中的各种常用小部件和功能的基本用法,构建了一个简单但功能全面的 GUI 应用程序。你可以根据需要扩展和修改这个应用程序,以满足特定的需求。

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

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

相关文章

QT-QPainter实现一个可切换的开关控件

1、效果 2、核心代码 #ifndef SWITCH_H #define SWITCH_H #include <QWidget> #include <QTimer>

Freemaker 模板

背景 发送邮件&#xff0c;正文利用freemaker完成 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId> </dependency>Autowired private Configuration configurer;GetMap…

如何调用讯飞星火认知大模型的API以利用其卓越功能

摘要 讯飞星火认知大模型&#xff0c;作为科大讯飞精心打造的一款人工智能模型&#xff0c;在自然语言理解和生成方面展现出了卓越的能力。这款模型通过深度学习技术和大量数据的训练&#xff0c;具备了强大的语言理解、文本生成和对话交互等功能。 一、模型功能概述 讯飞星…

我的创作纪念日--码农阿豪

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

前缀和+双指针,CF 131F - Present to Mom

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 131F - Present to Mom 二、解题报告 1、思路分析 很经典的一种把列看作cell 来进行双指针/递推的题型 我们考虑&#xff0c;可以预处理出原矩阵中的所有star 然后我们去枚举矩形的上下边界&#xff0c;把…

Flow Matching For Generative Modeling

Flow Matching For Generative Modeling 一、基于流的&#xff08;Flow based&#xff09;生成模型 生成模型 我们先回顾一下所谓的生成任务&#xff0c;究竟是想要做什么事情。我们认为&#xff0c;世界上所有的图片&#xff0c;是符合某种分布 p d a t a ( x ) p_{data}(…

Web前端设计入门:探索未知,点亮创意之光

Web前端设计入门&#xff1a;探索未知&#xff0c;点亮创意之光 在数字化浪潮汹涌的时代&#xff0c;Web前端设计作为连接用户与数字世界的桥梁&#xff0c;其重要性日益凸显。对于初学者来说&#xff0c;如何快速入门并掌握这一技能&#xff0c;成为了一个充满挑战与机遇的课…

华为OD机试真题2024版-求幸存数之和

题目描述\n给一个正整数列 nums,一个跳数 jump,及幸存数量 left。运算过程为:从索引为 0 的位置开始向后跳,中间跳过 J 个数字,命中索引为 J+1 的数字,该数被敲出,并从该点起跳,以此类推,直到幸存 left 个数为止。然后返回幸存数之和。\n约束: 1、0 是第一个起跳点。…

【因果推断python】45_估计量1

目录 问题设置 目标转换 到目前为止&#xff0c;我们已经了解了如何在干预不是随机分配的情况下对我们的数据进行纠偏&#xff0c;这会导致混淆偏差。这有助于我们解决因果推理中的识别问题。换句话说&#xff0c;一旦单位是可交换的&#xff0c;或者 &#xff0c;就可以学习…

MySQL CHECK约束

在 MySQL 中&#xff0c;直到 MySQL 8.0.16 版本之前&#xff0c;标准 SQL 的 CHECK 约束并未被完全支持。然而&#xff0c;从 MySQL 8.0.16 开始&#xff0c;CHECK 约束在表定义中得到了支持&#xff0c;允许你定义列中必须满足的条件。 使用 CHECK 约束&#xff0c;你可以确…

增加了redis分布式锁,但是还是生成了重复数据

增加了redis分布式锁&#xff0c;但是还是生成了重复数据 原因 两个线程 第一个线程先获取锁&#xff0c;然后进行新增&#xff0c;此时第二个线程也进入方法体&#xff0c;尝试获取锁&#xff0c;结果没获取到&#xff0c;继续在5s内尝试&#xff0c;在redis获取锁等待5s的过…

日志记录规范

日志记录通常包含三个基本要素&#xff1a;日期、信息和级别 别&#xff08;Level&#xff09;是日志记录中的一个重要概念&#xff0c;它用于标识日志消息的严重性和重要性。不同的系统和应用程序可能使用不同的日志级别体系&#xff0c;但常见的日志级别从高到低大致如下&am…

Web前端收入来源:探索多元化的盈利渠道

Web前端收入来源&#xff1a;探索多元化的盈利渠道 在数字化时代&#xff0c;Web前端技术日益成为推动互联网业务发展的重要力量。对于前端开发者而言&#xff0c;除了传统的薪资收入外&#xff0c;还存在多种潜在的收入来源。本文将从四个方面、五个方面、六个方面和七个方面…

Linux环境如何彻底卸载感干净RabbitMQ并重新安装

Linux&#xff08;Centos7&#xff09;环境如何彻底卸载感干净RabbitMQ并重新安装 我这个是超级简单的&#xff0c;如果安装不好&#xff0c;顺着网线来找我 一、卸载RabbitMq相关的软件包 1. 先停止RabbitMq服务 systemctl stop rabbitmq-server2. 查看rabbitmq安装的相关…

房地产市场的三个背离 欧美市场混动占优,丰田押注小发动机

当前我国房地产市场二手房表现与新房表现明显背离&#xff0c;核心城市表现与低线城市开始背离&#xff0c;未来可能出现房价表现与开发投资景气表现背离。看好核心城市在政策推动下进一步释放需求推动市场结构性复苏的前景。 房地产开发景气度继续下行 2024年5月&#xff0c;…

JAVA学习笔记DAY10——SpringBoot基础

文章目录 SpringBoot3 介绍SpringBoot 快速入门SpringBootApplication SpringBoot 配置文件统一配置管理Yaml 配置优势tips SpringBoot 整合 SpringMVC静态资源拦截器 interceptor SpringBoot 整合 DruidSpringBoot 整合 MybatisSpringBoot 整合 tx aopSpringBoot 打包 SpringB…

QT利用QGraphicsDropShadowEffect效果及自定义按钮来实现一个炫酷键盘

1、效果 2、核心代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent<

开源!在goview中实现cesium的低代码可视化编辑

大家好&#xff0c;我是日拱一卒的攻城师不浪&#xff0c;专注可视化、数字孪生、前端、nodejs、AI学习、GIS等学习沉淀&#xff0c;这是2024年输出的第19/100篇文章&#xff1b; 前言 前阵子写了一篇goview二开的文章教程&#xff0c;很多小伙伴留言对goview嵌套cesium并实现…

TCP编程

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 由于TCP连接具有安全可靠的特性&#xff0c;所以TCP应用更为广泛。创建TCP连接时&#xff0c;主动发起连接的叫客户端&#xff0c;被动响应连接的叫服…

【TIM输出比较】

TIM输出比较 1.简介1.1.输出比较功能1.2.PWM 2.输出比较通道2.1.结构原理图2.2.模式分类 3.输出PWM波形及参数计算4.案例所需外设4.1.案例4.2.舵机4.3.直流单机 链接: 15-TIM输出比较 1.简介 1.1.输出比较功能 输出比较&#xff0c;英文全称Output Compare&#xff0c;简称O…