python的GUI编程示例

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值