【Python】实现导入、提交文件并显示其路径的基础GUI界面

The tkinter package (“Tk interface”) 是一个基于Tcl/Tk GUI工具标准的Python接口。集合在大多数操作系统都有Tk和tkinter 库,包括MacOS,Window还有一些Unix类的操作系统

【基础操作】

1 设置窗口

# -*- coding: utf-8 -*-
from tkinter import *#创建主窗口
top = Tk()
top.title("超声日志可视化工具") #标题设置
top.geometry('300x100') #设置窗口大小为300x100 横纵尺寸
#调用主事件循环,让窗口程序保持运行。
top.mainloop()

2 添加按钮组件

# -*- coding: utf-8 -*-
# -*- coding: UTF-8 -*-from tkinter import *top = Tk()
top.title("超声日志可视化工具")
top.geometry('300x100')def open_msg_box():passdef open_err_box():pass#添加按钮1
first = Button(top, text="点击->查看消息", fg="tomato", command=open_msg_box)
first.pack()
#添加按钮2
second = Button(top, text="点击->查看错误", fg="tomato", command=open_err_box)
second.pack()
top.mainloop()

3 实现事件弹出消息窗口,错误窗口

点击不同按钮展示不同类型窗口和消息

# -*- coding: utf-8 -*-from tkinter import *
import tkinter.messagebox as mbtop = Tk()
top.title("超声日志可视化工具")
top.geometry('600x400')def open_msg_box():mb.showinfo("提示1", "简单的消息弹出窗口!")def open_err_box():mb.showerror("提示2", "演示错误消息窗口!")first = Button(top, text="点击->查看消息", fg="tomato", command=open_msg_box)
first.pack()
second = Button(top, text="点击->查看错误", fg="tomato", command=open_err_box)
second.pack()
top.mainloop()

【搭建首页界面】

需要用到的库

import tkinter as tk
from tkinter import filedialog, messagebox

根据上述的基本操作完成首页界面的导入文件和读取文件的按钮

root = tk.Tk()
root.title("超声日志可视化工具")# 标题
label_title = tk.Label(root, text="超声日志可视化工具", font=("Helvetica", 16))
label_title.pack(pady=10)# 显示文件路径和导入文件按钮
frame_file = tk.Frame(root)
frame_file.pack()entry_filename = tk.Entry(frame_file, width=50)
entry_filename.pack(side=tk.LEFT)button_browse = tk.Button(frame_file, text="导入文件", command=browse_file)
button_browse.pack(side=tk.LEFT, padx=10)# 开始读取按钮
button_start = tk.Button(root, text="开始读取", command=start_reading)
button_start.pack(pady=10)root.mainloop()

 设置首页的预览文件

def browse_file():filename = filedialog.askopenfilename(initialdir="/", title="选择日志文件",filetypes=(("Log files", "*.log"), ("All files", "*.*")))if filename.endswith('.log'):entry_filename.delete(0, tk.END)entry_filename.insert(tk.END, filename)else:# 提示用户选择正确的文件格式messagebox.showerror("错误", "请选择以 .log 结尾的文件")

设置首页的提交文件准备解析的部分

def start_reading():filename = entry_filename.get()# 在这里添加处理文件的代码if filename.endswith('.log'):print(f"开始读取文件:{filename}")else:# 提示用户选择正确的文件格式messagebox.showerror("错误", "请选择以 .log 结尾的文件")

提交文件后解析的功能代码结构,以及完成解析后跳转到下一个界面(功能已忽略)


def analyze_file():filename = entry_filename.get()if filename.endswith('.log'):# 打开文件并逐行读取with open(filename, 'r') as file:lines = file.readlines()...# 跳转到下一个界面display_results(filename, word_counts)else:# 提示用户选择正确的文件格式messagebox.showerror("错误", "请选择以 .log 结尾的文件")

【提交文件后跳转的下一个界面,同时显示对应的文件路径】

def display_results(filename, word_counts):# 创建新窗口result_window = tk.Toplevel(root)result_window.title("分析结果")# 显示正在分析的文件名称label_title = tk.Label(result_window, text=f"正在分析文件:{filename}", font=("Helvetica", 12))label_title.pack(pady=10)# 显示统计结果的表格for keyword, count in word_counts.items():label_keyword = tk.Label(result_window, text=f"{keyword}: {count}")label_keyword.pack()

【参考资料】

[1] 保姆级别操作指导,教你用Python快速开发UI应用!:https://blog.csdn.net/geeklevin/article/details/119985528

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

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

相关文章

ASP.NET MVC企业级程序设计 (EF+MVP实现显示数据)

效果图 实现过程 1创建数据库 2创建项目文件 3创建控制器,右键添加,控制器 注意这里要写Home 创建成功 数据模型创建过程之前作品有具体过程 4创建视图,右键添加视图 5HomeController.cs代码 using System; using System.Collections.Gene…

【数学建模】2024认证杯C题完整思路和代码论文解析

经过不懈的努力,2024认证杯数学建模C题的完整论文和代码已完成,代码为A题全部4问的代码,论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解(问题1模型的建立与求解、问题2模型的建立与求解、问题3模型的建…

力扣爆刷第118天之CodeTop100五连刷76-80

力扣爆刷第118天之CodeTop100五连刷76-80 文章目录 力扣爆刷第118天之CodeTop100五连刷76-80一、221. 最大正方形二、240. 搜索二维矩阵 II三、162. 寻找峰值四、234. 回文链表五、112. 路径总和 一、221. 最大正方形 题目链接:https://leetcode.cn/problems/maxim…

简站WordPress主题:简洁、实用、无插件、更安全

在众多的WordPress主题中,简站WordPress主题以其简洁、实用、无插件和更安全的特性脱颖而出,成为众多网站开发者和用户的首选。本文将对简站WordPress主题进行详细介绍,帮助您更好地了解这款优秀的主题。 一、简洁的设计 简站WordPress主题…

数据结构1:动态顺序表的实现

文章目录 头文件实现文件测试文件 头文件 #pragma once#include<stdio.h> #include<stdlib.h> #include<assert.h>#define INIT_CAPACITY 4typedef int SLDataType;// 动态顺序表 -- 按需申请 typedef struct SeqList {SLDataType* a;int size;int capacity…

浏览器工作原理与实践--HTTP/1:HTTP性能优化

谈及浏览器中的网络&#xff0c;就避不开HTTP。我们知道HTTP是浏览器中最重要且使用最多的协议&#xff0c;是浏览器和服务器之间的通信语言&#xff0c;也是互联网的基石。而随着浏览器的发展&#xff0c;HTTP为了能适应新的形式也在持续进化&#xff0c;我认为学习HTTP的最佳…

【LAMMPS学习】八、基础知识(2.6)Lammps中的Walls墙

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语&#xff0c;以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

解释器模式:专为语言处理定制的模式

在软件开发中&#xff0c;解释器模式是一种特定的行为型设计模式&#xff0c;它用于定义一种语法&#xff0c;并提供一个解释器来解释这种语法或表达式。这种模式用于专门的情况&#xff0c;当有一个简单的语言需要解释时&#xff0c;它可以被用来表达实例的规则。本文将详细介…

初识鸿蒙HarmonyOS系统

鸿蒙HarmonyOS的诞生背景 鸿蒙HarmonyOS的起源&#xff1a; 鸿蒙HarmonyOS是中华为面对全球科技发展趋势和自身战略需求&#xff0c;在2019年推出的全新一代面向全场景的分布式操作系统。它的诞生旨在应对物联网时代下各种智能设备互联互通的需求&#xff0c;以及构建自主可控…

【vue】watchEffect 自动侦听器

watchEffect&#xff1a;自动监听值的变化 获取旧值时&#xff0c;不是很方便&#xff0c;建议用watch <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevic…

redis zremove删除不掉【bug】

redis zremove删除不掉【bug】 前言版权redis zremove删除不掉错误产生相关资源EldDataEchartsTestDataService 解决 最后 前言 2024-4-12 20:35:21 以下内容源自《【bug】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星…

Ubuntu16.04 CUPS安装与Andoird ndk交叉编译CUPS(待续...)

ubuntu安装cups 在Ubuntu上安装CUPS&#xff08;打印系统&#xff09;的步骤如下&#xff1a; 1、打开终端。 2、更新软件包列表&#xff1a; sudo apt update 3、安装CUPS&#xff1a; sudo apt install cups​​​​​​​ 4、安装foomatic-filters与ghostscript&…

每日一练(力扣)

我的思路是暴力枚举: 情况1:相同&#xff0c;就让子串和原串同时后移继续比较 情况2:不相同&#xff0c;就只让原串后移 public int strStr(String haystack, String needle) {if (haystack.length() < needle.length()){return -1;}for (int i 0; i < h…

HiveSQL基础Day03

回顾总结 hive表的类型 &#xff1a;内部表和外部表 删除内部表会删除表的所有数据 删除外部表只会删除表的元数据&#xff0c;hdfs上的行数据会保留 表的分区和分桶 本质都是对表数据的拆分存储 分区的方式 是通过创建不同的目录来拆分数据 &#xff0c;根据数据本身的内容最为…

K8S哲学 - 常见的资源类型

资源类型 namespace kubectl apply 和 kubectl create kubectl apply是声明式的 和 kubectl create是命令式的对吗 deployment 和 job的区别 k8s 的 lable 的意义

【YUNBEE云贝-进阶课】MySQL8.0性能优化实战培训

众多已经学习过MySQL 8.0 OCP认证专家的课程的同学们对 MySQL 8.0 的安装部署、体系结构、配置监控、用户管理、主从复制、系统运维、MGR等基础操作和动手实验有了一定的学习基础.很多学员反馈希望更进一步提升技术能力、解决工作中碰到的性能问题。 针对MySQL8.0的数据库性能优…

DMA的认识

DMA介绍 Q:什么是DMA&#xff1f; DMA( Direct Memory Access&#xff0c;直接存储器访问 ) 提供在 外设与内存 、 存储器和存储器 、 外设 与外设 之间的 高速数据传输 使用。它允许不同速度的硬件装置来沟通&#xff0c;而不需要依赖于 CPU &#xff0c;在这个时间中&am…

go的标准化error处理

go的标准化error处理 文章目录 go的标准化error处理1、建议这样写错误处理2、怎么优化代码让其不再堆积 1、建议这样写错误处理 // 1 func autn() {var err errorif err ! nil {// handle err}//do stuff }// 2 func a(r *http.Request) error {//err : r.ParseForm()//if er…

算法打卡day34

今日任务&#xff1a; 1&#xff09;62.不同路径 2&#xff09;63.不同路径 II 3&#xff09;复习day10 62.不同路径 题目链接&#xff1a;62. 不同路径 - 力扣&#xff08;LeetCode&#xff09; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “S…

数据中心的网络架构设计,打造高效、安全的数字底座

数据中心的网络架构设计 一、数据中心网络架构设计原则 网络,作为数据中心的核心支柱,其结构精妙,由众多二层接入设备与少量三层设备共同编织而成。过去,数据中心网络规模有限,仅凭数十台设备的简单互连便能实现信息的畅通无阻。然而,随着技术与应用需求的飞速增长,数据…