GUI端编程示例,做模板
from tkinter import *
from tkinter import messagebox
import os
import time
class Application(Frame):
def __init__(self, master=None):
super().__init__(master) # super()代表的是父类的定义,而不是父类对象
self.master = master
self.pack()
self.createWidget()
def createWidget(self):
"""创建组件"""
# 输入框
self.label01 = Label(self, text="原始报告")
self.label01.pack()
self.text01 = Text(self, height=50)
self.text01.pack()
self.label02 = Label(self, text="报告保存路径")
self.label02.pack()
self.entry02 = Entry(self, textvariable=StringVar(), width=80)
self.entry02.pack()
# 生成报告按钮
self.btn01 = Button(self.master, width=15, height=2)
self.btn01["text"] = "生成Excel性能报告"
self.btn01.pack()
self.btn01.place(x=170, y=730) # 调整位置
self.btn01["command"] = self.exec_create_fio_report
# 重置
self.btn02 = Button(self.master, text="清空输入框", command=self.reset, width=15, height=2)
self.btn02.pack()
self.btn02.place(x=345, y=730)
# 创建一个退出按钮
self.btnQuit = Button(self.master, text="退出", command=root.destroy, width=15, height=2)
self.btnQuit.pack()
self.btnQuit.place(x=520, y=730)
def reset(self):
self.text01.delete("1.0", "end")
self.text01.insert("1.0", "")
self.entry02.delete(0, "end")
def FioExcelReport(self,report_path, dat):
pass
def exec_create_fio_report(self):
if not self.entry02.get():
messagebox.showinfo("失败!", "请输出保存报告的路径!")
return
if not self.text01.get("1.0", "end").strip():
messagebox.showinfo("失败!", "请输出原始报告内容,通过fio虚拟机执行bash fio_test.sh -s result获取并粘贴进来!")
return
data = self.text01.get("1.0", "end")
report_path = os.path.join(self.entry02.get(), "fio_report.xlsx")
print(report_path)
fio_report = self.FioExcelReport(report_path, data)
fio_report.main()
while True:
start_time = time.time()
if os.path.exists(report_path):
break
time.sleep(5)
end_time = time.time()
if end_time - start_time > 300:
messagebox.showinfo("失败!", "fio性能测试报告生成失败!")
return
messagebox.showinfo("完成", "fio性能测试报告已生成!\n 报告保存路径为:{}".format(report_path))
root = Tk()
root.geometry("800x800+400+150")
root.title("fio性能报告生成工具")
app = Application(master=root)
root.mainloop()