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