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

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于YOLOv8+pyqt5实现的过马路玩手机打电话检测告警系统源码(GUI界面+数据集+模型+评估曲线+部署说明) 检测斑马线、玩手机、打电话、行人、车辆、其他。简易的GUI界面,含有训练好的模型、评估指标曲线、数据集、详细部署操作文档,有问题可以私信留言。 以下内容为项目部署详细过程和说明 1、项目代码分为两部分 main_gui_code和ultralytics,其中main_gui_code代码包含GUI界面代码+训练好的模型+YOLOv8推理逻辑融合GUI的代码,也就是说这部分可以打开GUI界面,加载模型和图片、视频、视频流 进行测试。ultralytics则为YOLOv8源代码,可用来训练各种模型,当然也可以用来测试,输出结果,只不过不带GUI界面。故我们使用ultralytics来训练模型,然后拷贝模型到main_gui_code中, 进行GUI界面测试。 2、搭建环境 安装anaconda 和 pycharm windows系统、mac系统、Linux系统都适配 在anaconda中新建一个新的envs虚拟空间(可以参考博客来),命令窗口执行:conda create -n YOLOv8-GUI python==3.8 创建完YOLOv8-GUI虚拟空间后,命令窗口执行:source activate YOLOv8-GUI 激活虚拟空间 然后就在YOLOv8-GUI虚拟空间内安装requirements.txt中的所有安装包,命令窗口执行:pip install -r requirements.txt 使用清华源安装更快 3、打开GUI推理测试 当以上步骤顺利完成后,环境已经搭建完毕,下面我们尝试打开GUI界面进行测试 pycharm中打开整个项目,导入配置anaconda安装的YOLOv8-GUI虚拟环境(参考博客) 运行main_jiemian.py即可成功打开界面,模型文件放在main_gui_code/models/文件夹,后缀为.pt。可以存放多个模型,可通过界面来选择要使用的模型 点击选择模型按钮选择pt模型,然后点击选择路径按钮,选择待测图片或者视频,最后点击开始检测按钮,开始推理测试并显示画框及得分值 4、训练模型过程 进入到\ultralytics\ultralytics\yolo\v8\detect\文件夹下,datasets即为我们准备好的数据集,训练其他模型同理。 data文件夹下的cross_line.yaml文件为数据集配置文件,博文有介绍https://blog.csdn.net/DeepLearning_?spm=1011.2415.3001.5343 train.py中208行,修改为的data = cfg.data or './cross_line.yaml' # or yolo.ClassificationDataset("mnist") 207行修改自己使用的预训练模型 若自己有显卡,修改211行,如我有四张显卡,即改成args = dict(model=model, data=data, device=”0,1,2,3“) 以上配置完成后运行train.py开始训练模型,训练完毕后会在runs/detect/文件夹下生成train*文件夹,里面包含模型和评估指标等 5、无GUI推理测试 训练好模型,打开predict.py,修改87行,model = cfg.model or 'yolov8n.pt',把yolov8n.pt换成我们刚才训练完生成的模型路径,待测试的图片或者视频存放于ultralytics\ultralytics\assets文件夹, 运行predict.py即可,检测结果会在runs/detect/train文件夹下生成。 【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能。
### 回答1: 您可以使用tkinter模块来创建Python GUI应用程序。以下是一个示例代码,可以让用户选择文件夹并将其路径显示GUI中: ```python import tkinter as tk from tkinter import filedialog def select_folder(): folder_path = filedialog.askdirectory() folder_path_label.config(text=folder_path) root = tk.Tk() root.title("选择文件夹") select_folder_button = tk.Button(root, text="选择文件夹", command=select_folder) select_folder_button.pack(pady=10) folder_path_label = tk.Label(root, text="") folder_path_label.pack() root.mainloop() ``` 当用户单击“选择文件夹”按钮时,`select_folder()`函数将被调用。该函数使用`filedialog`模块中的`askdirectory()`函数来打开文件夹选择对话框,并返回所选文件夹的路径。然后,该路径显示GUI中的标签中。 希望这可以帮助您! ### 回答2: 在PythonGUI编程中,要实现点击按钮获取选中文件路径显示,可以使用tkinter库。 首先,我们需要导入tkinter库,并创建一个窗口对象,用于显示GUI界面。然后,我们可以创建一个标签控件,用于显示选中的文件路径。接着,创建一个按钮控件,并定义一个回调函数,用于获取选中的文件路径。在回调函数中,我们可以使用filedialog模块中的askdirectory方法来获取用户选择的文件路径。 下面是一个简单的示例代码: ```python import tkinter as tk from tkinter import filedialog def select_folder(): folder = filedialog.askdirectory() label.config(text="选中的文件路径是:" + folder) root = tk.Tk() root.title("选择文件夹") button = tk.Button(root, text="选择文件夹", command=select_folder) button.pack() label = tk.Label(root, text="选中的文件路径是:") label.pack() root.mainloop() ``` 运行以上代码,会弹出一个GUI窗口,点击按钮后会出现文件夹选择对话框。选择一个文件夹后,程序会将选中的文件路径显示在标签控件上。 这样,我们就用PythonGUI编程实现了点击按钮获取选中文件路径显示的功能。 ### 回答3: 在Python中,可以使用Tkinter库创建GUI界面,并通过按钮点击事件来获取选中文件夹的路径并进行显示。 首先,需要导入Tkinter库: ``` from tkinter import * from tkinter import filedialog ``` 然后,创建一个函数来处理按钮点击事件: ``` def get_folder_path(): folder_selected = filedialog.askdirectory() # 弹出文件夹选择对话框 label.config(text="选中的文件路径:" + folder_selected) # 显示选中文件夹的路径 ``` 接下来,创建一个Tkinter窗口,并添加一个按钮和一个标签来显示选中文件夹的路径: ``` window = Tk() window.title("获取文件路径") window.geometry("400x200") button = Button(window, text="选择文件夹", command=get_folder_path) button.pack(pady=20) label = Label(window, text="") label.pack() window.mainloop() ``` 最后,调用主循环函数`mainloop()`以启动GUI应用程序。 当点击按钮后,会弹出一个文件夹选择对话框,选择一个文件夹后,对话框会关闭并在标签中显示选择的文件路径

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hellenionia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值