欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

测试工具研发_(3)测试框架驱动之事件绑定

程序员文章站 2022-07-12 18:58:44
...

1、主要涉及界面的事件绑定

# encoding: utf-8
"""

3、
(1)绑定事件的处理,另外根据输入的文件路径过长,将文本框拉长处理:调整比例且对box1做平铺
(2)事件处理中打开配置文件,并且对文件进行了读取

"""
import csv

import wx
# 测试框架界面类的实现


class UI_testframe:
    # 初始化方法定义窗体、面板、控件
    def __init__(self):
        # 定义app对象
        self.app = wx.App()
        # 定义窗体
        self.window = wx.Frame(None, title="测试框架v1.0", size=(400, 300))
        # 定义panel面板
        self.panel = wx.Panel(self.window)
        # 定义面板上的控件
        # 定义标签文字
        self.lbl_file=wx.StaticText(self.panel, label="测试框架配置文件")
        # 定义文件显示文本框
        self.txt_file=wx.TextCtrl(self.panel)
        # 定义打开按钮
        self.but_open=wx.Button(self.panel, label="打开")
        # 定义执行按钮
        self.but_run = wx.Button(self.panel, label="执行")
        # 定义成功之按钮
        self.but_clear = wx.Button(self.panel, label="重置")
        # 定义退出按钮
        self.but_exit = wx.Button(self.panel, label="退出")
        # 定义配置文件名称
        self.configfile = ""

    # 控件排版
    def UI_layout(self):
        # 定义一个水平box
        box1 = wx.BoxSizer()
        box1.Add(self.lbl_file, flag=wx.ALL, border=10),
        box1.Add(self.txt_file, flag=wx.ALL, border=10, proportion=2),

        # 定义一个水平box
        box2 = wx.BoxSizer()
        box2.Add(self.but_open, flag=wx.ALL, border=10),
        box2.Add(self.but_run, flag=wx.ALL, border=10),
        box2.Add(self.but_clear, flag=wx.ALL, border=10),
        box2.Add(self.but_exit, flag=wx.ALL, border=10),
        # 定义一个竖直box,进行排版,并生效
        box3 = wx.BoxSizer(wx.VERTICAL)
        box3.Add(box1, flag=wx.TOP | wx.EXPAND, border=40),
        box3.Add(box2, flag=wx.TOP, border=40),
        self.panel.SetSizer(box3)

    # 按钮触发绑定事件
    def UI_event(self):
        self.but_open.Bind(wx.EVT_BUTTON, self.openfile)

    # 事件1:打开配置文件
    def openfile(self, event):
        # 设置打开文件对话框
        self.dlg_open = wx.FileDialog(self.panel, style=wx.FD_OPEN, message="打开文件", wildcard="*.csv")
        # 点击控件的ok,
        if self.dlg_open.ShowModal()==wx.ID_OK:
            # 控件txt_file放入文件
            self.txt_file.AppendText(self.dlg_open.GetPath())
            # 在这里给属性configfile赋值,方便后面调用
            self.configfile = self.dlg_open.GetPath()

    # 读取csv配置文件
    def readfile(self):
        file = open(self.configfile, "r", encoding="utf-8")  # !!!这里有个问题,读取文件必须以utf-8格式进行读取
        table = csv.reader(file)
        for content in table:
            print(content)


    # 显示窗体对象
    def UI_show(self):
        self.window.Show()
        self.app.MainLoop()


if __name__ == '__main__':
    a = UI_testframe()
    a.UI_layout()
    a.UI_event()
    a.UI_show()