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

news2024/11/26 11:41:47

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():
    pass


def 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 mb

top = 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.coloradmin.cn/o/1591003.html

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

相关文章

2024年认证杯SPSSPRO杯数学建模D题(第一阶段)AI绘画带来的挑战全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 D题 AI绘画带来的挑战 原题再现: 2023 年开年,ChatGPT 作为一款聊天型 AI 工具,成为了超越疫情的热门词条;而在 AI 的另一个分支——绘图领域,一款名为 Midjourney(MJ&…

Matlab调C/C++简单模板例子

如果你是需要快速搭建一个matlab调c/c环境,这篇文章可以参考 有了c代码,想在matlab里面调用,可以参考我这个模板 matlab调用代码: clear all close all clcinput1 1; input2 2;[output1,output2] mexfunction(input1,input2);…

充电有喜分析

参考相关应用 华为市场 -> 充电有喜2.0.1网络查找 -> 充电有喜1.0.0 http://www.xz7.com/downinfo/609008.html反编译app有个文字漏洞,找到 来福充电宝 https://sj.qq.com/appdetail/com.evenhaexplo.courte 需要解决的问题 电源插拔注册为什么需要悬浮窗权…

Linux C柔性数组(零长数组)

零长数组&#xff0c;大小为0&#xff0c;一般用在结构体中&#xff08;网络通信&#xff0c;省流&#xff09;&#xff0c;节省空间&#xff0c;方便善后&#xff08;相对于指针类型&#xff09;&#xff0c;我们通过具体例子进行理解。 常规定长数组 #include <stdio.h&…

[温故] 红黑树算法

前言 最近在突然想起一些基础的东西, 向着温故知新, 有了些新的感悟和大家分享一下. 排序算法是数据结构的一个重要组成部分, 当时学习的时候没有少折腾, 这里来看看大佬们怎么运用这些数据结构来构建庞大的计算机体系的. 二叉树是排序算法的一个衍生, 基于二叉树的构建不同…

【路径规划】基于六次多项式的多关节机器人避障路径规划

最近迷上了机械臂避障轨迹规划&#xff0c;因为之前一直做的都是无障碍物轨迹规划&#xff0c;所以这次想试一下有障碍物的&#xff0c;把避障算法用在我的SimMechanics机械臂上&#xff0c;看看效果咋样。以下定义不区分路径规划和轨迹规划。   by the way&#xff0c;本文实…

一种跳板机的实现思路

一、 跳板机思路简介 本文所描述的跳板机&#xff08;下文称为“jmp”&#xff09;支持&#xff1a; Linux服务器 Windows服务器 其他终端&#xff08;MySQL终端、Redis终端、网络设备终端 等等&#xff09; 有别于市面上常见的jumpserver方案&#xff0c;使用本文所搭建的跳…

CSS实现卡片在鼠标悬停时突出效果

在CSS中&#xff0c;实现卡片在鼠标悬停时突出&#xff0c;通常使用:hover伪类选择器。 :hover伪类选择器用于指定当鼠标指针悬停在某个元素上时&#xff0c;该元素的状态变化。通过:hover选择器&#xff0c;你可以定义鼠标悬停在元素上时元素的样式&#xff0c;比如改变颜色、…

最新PDD批发Anti-Content参数逆向分析与算法还原

文章目录 1. 写在前面2. 接口分析3. 分析与扣代码 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Py…

Java(今天偷懒一丢丢

今天学了一点点io流 基本概念 输入流&#xff08;InputStream&#xff09;&#xff1a;用于从数据源读取数据。输出流&#xff08;OutputStream&#xff09;&#xff1a;用于向目标写入数据。 分类 按功能分类 字节流&#xff1a;处理字节数据&#xff0c;如 InputStream 和…

CSS aspect-ratio属性设置元素宽高比

aspect-ratio 是CSS的一个属性&#xff0c;用于设置元素的期望宽高比。它设置确保元素保持特定的比例&#xff0c;不受其内容或容器大小的影响。 语法&#xff1a; aspect-ratio: <ratio>;其中 <ratio> 是一个由斜杠&#xff08;/&#xff09;分隔的两个数字&…

韩顺平 | 零基础快速学Python(12) OOP基础

面向对象编程-基础 类与对象 类提供了把数据和功能绑定在一起的方法。创建新类时创建了新的对象类型&#xff0c;从而能够创建该类型的新实例/对象。 类时抽象的概念&#xff0c;作为数据类型代表一类事物&#xff1b;对象时具体实际的&#xff0c;作为实例代表具体事物&…

【c语言】atoi函数---使用和模拟实现(详解)

atoi函数---使用和模拟实现 atoi函数在Cplusplus中的定义 atoi函数的使用 #include <stdio.h> #include <stdlib.h>int main() {char arr[20] "4831213";int ret 0;ret atoi(arr);printf("arr:%s\n", arr);printf("ret:%d\n", re…

JWT重放漏洞如何攻防?你的系统安全吗?

大家好&#xff0c;我是石头~ 在数字化浪潮席卷全球的今天&#xff0c;JSON Web Token&#xff08;JWT&#xff09;作为身份验证的利器&#xff0c;已成为众多Web应用的首选方案。 然而&#xff0c;正如硬币有两面&#xff0c;JWT的强大功能背后也隐藏着潜在的安全风险&#xf…

手把手教你如何下载学浪上的视频课程

学浪直播课程下载技术尚未攻克&#xff0c;但视频课程下载却易如反掌。 1.首先解压好我给大家准备好的压缩包 学浪下载器链接&#xff1a;https://pan.baidu.com/s/1y7vcqILToULrYApxfEzj_Q?pwdkqvj 提取码&#xff1a;kqvj --来自百度网盘超级会员V10的分享 2.首先解压我…

OpenHarmony编译构建系统

这篇来聊聊OpenHarmony的编译构建&#xff0c;经过前面的实践&#xff0c;再来看编译构建。 编译构建概述 在官网中提到了&#xff0c;OpenHarmony编译子系统是以GN和Ninja构建为基座&#xff0c;对构建和配置粒度进行部件化抽象、对内建模块进行功能增强、对业务模块进行功能…

数据采集仪:自动化监测系统的核心组件

在当代的工业自动化领域&#xff0c;数据采集仪成为了一个关键的技术工具&#xff0c;它不仅仅是简单地将电信号转化为数据信号&#xff0c;而是能够实时、有效地处理和显示各种信号&#xff0c;确保整个监测系统的稳定、高效运行。 点击输入图片描述&#xff08;最多30字&…

计算机网络 子网掩码与划分子网

一、实验要求与内容 1、需拓扑图和两个主机的IP配置截图。 2、设置网络A内的主机IP地址为“192.168.班内学号.2”&#xff0c;子网掩码为“255.255.255.128”&#xff0c;网关为“192.168.班内学号.1”&#xff1b;设置网络B内的主机IP地址为“192.168.班内学号100.2”&#…

JWT详解及实战教程

目录 1.什么是JWT 2.JWT能做什么 3.为什么是JWT 基于传统的Session认证 基于JWT认证 4.JWT的结构是什么? 5.使用JWT 6.封装工具类 7.整合springboot 1.什么是JWT JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way…

CSS-浮动文字环绕布局、隐藏属性display、overflow、三角形制作、鼠标样式

文字环绕布局 CSS文字环绕布局是指在网页中让文字环绕在图片或其他元素周围的布局方式。这通常通过CSS中的float属性来实现。你可以将图片设置为float: left;或float: right;&#xff0c;然后在文本元素中使用clear属性来清除浮动&#xff0c;以确保文字不会覆盖图片。另外&am…