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