资讯专栏INFORMATION COLUMN

测试工具研发_脚本(5):制作略复杂GUI窗体

DesGemini / 2917人阅读

摘要:文章目录初步排版梳理代码优化结构为面向对象总结关于窗体实现的总体思路梳理初步排版梳理代码试验带标签文字的文本框初始化定义窗体试验定义定义标签最小长度定义文本框定义标签最大长度定义文本框定义复选框包含大写字母包含小写字母

1、V1.0_GUI初步排版梳理代码

# 试验带标签文字的文本框import wx# 初始化APPapp = wx.App()# 定义窗体window = wx.Frame(None, title="试验", size=(500, 500))# 定义panelpanel = wx.Panel(window)# 定义标签lblmin = wx.StaticText(panel, label="最小长度")# 定义文本框txtmin = wx.TextCtrl(panel)# 定义标签lblmax = wx.StaticText(panel, label="最大长度")# 定义文本框txtmax = wx.TextCtrl(panel)# 定义复选框chkB1 = wx.CheckBox(panel, label="包含大写字母")chkB2= wx.CheckBox(panel, label="包含小写字母")chkB3 = wx.CheckBox(panel, label="包含数字")chkB4= wx.CheckBox(panel, label="包含符号")chkB5 = wx.CheckBox(panel, label="包含序号")chkB6 = wx.CheckBox(panel, label="包含邮箱后缀")chkB7 = wx.CheckBox(panel, label="保存到文件")# 定义标签lblfile = wx.StaticText(panel, label="文件名及路径")# 定义文本框txtfile = wx.TextCtrl(panel)# 定义标签lblshu = wx.StaticText(panel, label="数据总数")# 定义文本框txtshu = wx.TextCtrl(panel)# 定义2个按钮butOK = wx.Button(panel, label="确定")butreset = wx.Button(panel, label="重置")# 设置布局box1 = wx.BoxSizer()  # 默认是横向的box1.Add(lblmin, flag=wx.LEFT | wx.TOP, border=10)box1.Add(txtmin, flag=wx.LEFT | wx.TOP, border=10)box1.Add(lblmax, flag=wx.LEFT | wx.TOP, border=10)box1.Add(txtmax, flag=wx.LEFT | wx.TOP, border=10)# 设置第二行的布局box2 = wx.BoxSizer()  # 默认是横向的box2.Add(chkB1, flag=wx.LEFT | wx.TOP, border=10)box2.Add(chkB2, flag=wx.LEFT | wx.TOP, border=10)# 设置第三行的布局box3 = wx.BoxSizer()  # 默认是横向的box3.Add(chkB3, flag=wx.LEFT | wx.TOP, border=10)box3.Add(chkB4, flag=wx.LEFT | wx.TOP, border=10)# 设置第四行的布局box4 = wx.BoxSizer()  # 默认是横向的box4.Add(chkB5, flag=wx.LEFT | wx.TOP, border=10)box4.Add(chkB6, flag=wx.LEFT | wx.TOP, border=10)# 设置第五行的布局box5 = wx.BoxSizer()  # 默认是横向的box5.Add(chkB7, flag=wx.LEFT | wx.TOP, border=10)box5.Add(lblfile, flag=wx.LEFT | wx.TOP, border=10)box5.Add(txtfile, flag=wx.LEFT | wx.TOP, border=10)# 设置第六行的布局box6 = wx.BoxSizer()  # 默认是横向的box6.Add(lblshu, flag=wx.LEFT | wx.TOP, border=10)box6.Add(txtshu, flag=wx.LEFT | wx.TOP, border=10)# 设置第七行的布局box7 = wx.BoxSizer()  # 默认是横向的box7.Add(butOK, flag=wx.LEFT | wx.TOP, border=10)box7.Add(butreset, flag=wx.LEFT | wx.TOP, border=10)# 设置垂直布局boxFinal = wx.BoxSizer(wx.VERTICAL)boxFinal.Add(box1)boxFinal.Add(box2)boxFinal.Add(box3)boxFinal.Add(box4)boxFinal.Add(box5)boxFinal.Add(box6)boxFinal.Add(box7)panel.SetSizer(boxFinal)# 显示窗体window.Show(True)# 启动appapp.MainLoop()

2、V2.0_优化结构为面向对象

# V2.0优化结构---面向对象import wximport string, random# 定义类class GUI_CreatData:    # 类的初始化    def __init__(self):        # 初始化APP        self.app = wx.App()        # 定义窗体        self.window = wx.Frame(None, title="试验", size=(500, 500))        # 定义panel        self.panel = wx.Panel(self.window)        # 定义标签        self.lblmin = wx.StaticText(self.panel, label="最小长度")        # 定义文本框        self.txtmin = wx.TextCtrl(self.panel)        # 定义标签        self.lblmax = wx.StaticText(self.panel, label="最大长度")        # 定义文本框        self.txtmax = wx.TextCtrl(self.panel)        # 定义复选框        self.chkB1 = wx.CheckBox(self.panel, label="包含大写字母")        self.chkB2 = wx.CheckBox(self.panel, label="包含小写字母")        self.chkB3 = wx.CheckBox(self.panel, label="包含数字")        self.chkB4 = wx.CheckBox(self.panel, label="包含符号")        self.chkB5 = wx.CheckBox(self.panel, label="包含序号")        self.chkB6 = wx.CheckBox(self.panel, label="包含邮箱后缀")        self.chkB7 = wx.CheckBox(self.panel, label="保存到文件")        # 定义标签        self.lblfile = wx.StaticText(self.panel, label="文件名及路径")        # 定义文本框        self.txtfile = wx.TextCtrl(self.panel)        # 定义标签        self.lblshu = wx.StaticText(self.panel, label="数据总数")        # 定义文本框        self.txtshu = wx.TextCtrl(self.panel)        # 定义2个按钮        self.butOK = wx.Button(self.panel, label="确定")        self.butreset = wx.Button(self.panel, label="重置")    # 控件布局    def layout(self):        # 设置布局        box1 = wx.BoxSizer()  # 默认是横向的        box1.Add(self.lblmin, flag=wx.LEFT | wx.TOP, border=10)        box1.Add(self.txtmin, flag=wx.LEFT | wx.TOP, border=10)        box1.Add(self.lblmax, flag=wx.LEFT | wx.TOP, border=10)        box1.Add(self.txtmax, flag=wx.LEFT | wx.TOP, border=10)        # 设置第二行的布局        box2 = wx.BoxSizer()  # 默认是横向的        box2.Add(self.chkB1, flag=wx.LEFT | wx.TOP, border=10)        box2.Add(self.chkB2, flag=wx.LEFT | wx.TOP, border=10)        # 设置第三行的布局        box3 = wx.BoxSizer()  # 默认是横向的        box3.Add(self.chkB3, flag=wx.LEFT | wx.TOP, border=10)        box3.Add(self.chkB4, flag=wx.LEFT | wx.TOP, border=10)        # 设置第四行的布局        box4 = wx.BoxSizer()  # 默认是横向的        box4.Add(self.chkB5, flag=wx.LEFT | wx.TOP, border=10)        box4.Add(self.chkB6, flag=wx.LEFT | wx.TOP, border=10)        # 设置第五行的布局        box5 = wx.BoxSizer()  # 默认是横向的        box5.Add(self.chkB7, flag=wx.LEFT | wx.TOP, border=10)        box5.Add(self.lblfile, flag=wx.LEFT | wx.TOP, border=10)        box5.Add(self.txtfile, flag=wx.LEFT | wx.TOP, border=10)        # 设置第六行的布局        box6 = wx.BoxSizer()  # 默认是横向的        box6.Add(self.lblshu, flag=wx.LEFT | wx.TOP, border=10)        box6.Add(self.txtshu, flag=wx.LEFT | wx.TOP, border=10)        # 设置第七行的布局        box7 = wx.BoxSizer()  # 默认是横向的        box7.Add(self.butOK, flag=wx.LEFT | wx.TOP, border=10)        box7.Add(self.butreset, flag=wx.LEFT | wx.TOP, border=10)        # 设置垂直布局        boxFinal = wx.BoxSizer(wx.VERTICAL)        for i in range(1, 8):            boxFinal.Add(eval(f"box{i}"))  # eval函数将字符串转换为对象        self.panel.SetSizer(boxFinal)    # 运行app    def run(self):        self.window.Show(True)        self.app.MainLoop()if __name__ == "__main__":    gui = GUI_CreatData()    gui.layout()    gui.run()

3、V3.0 总结

关于GUI窗体实现的总体思路梳理

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/120908.html

相关文章

  • 图解——PyQt4从入门到运用

    摘要:将程序包装在界面里,可以将输入通过多种途径如文本框弹出路径选择等输入到程序里。将输出通过文本框显示出来将执行信息如如报错信息运行进度通过文本框或进度条显示出来文章安排先介绍安装和配合的使用。 作为一个程序的开发者,我们仅仅需要在相应路径通过命令行就可执行那个程序。但是,不懂行的人不理解这个黑框框的东西,陌生领域任何人都没有安全感,所以他们是拒绝接受一个项目仅仅只是通过一个黑框框来执行的...

    史占广 评论0 收藏0
  • Python 小白的 PyQt5 项目实战(1)安装与环境配置

    摘要:工具可以直接使用方式安装和的环境配置使用集成开发工具的小白,在安装库以后,还要对和进行环境配置,将其集成到中。如果小白的或安装在其他路径下,则从对应的目录找到,或者在资源管理器中搜索文件找到安装路径。 ...

    Chao 评论0 收藏0
  • Python的门面担当 - Tkinter

    摘要:在这个窗口之上,可以添加各种输入框按钮文本等,可以增加对各种动作的处理。事件要与特定的控件相绑定,比如按钮有点击事件,输入框有按键事件,窗体有关闭事件等。 在大多数时候,我们都在黑黢黢的控制台里执行 Python 脚本。这看起来很酷很 GEEK。但对于部分场景下的用户来说,这样就不大美观和人性化了:我们需要交互更方便的图形化产品,也就是 GUI (图形用户界面,Graphical Us...

    Lucky_Boy 评论0 收藏0
  • 测试工具研发_脚本(最终版):数据个数以及保存文件的处理

    摘要:文章目录数据个数以及保存文件处理代码框架后续研发测试工具的思路数据个数以及保存文件处理默认显示在一个弹出窗体中将保存的数据存入指定文件中清空界面上所有文件的内容根据需要的数量生成测试数据,根据选择确认是否要保存成文件依 ...

    jindong 评论0 收藏0
  • Python又把GUI界面攻下了,今天就告诉你怎么玩

    摘要:引言学这么久了,一直想做个界面出来,最近发现有个内置库,利用它可以很轻松做出一些简易的界面,首先来看官方对的说明从上面描述中我们不难看出,不管你是系统,还是系统,它都可以生成相对应的操作界面,这就是所谓的跨平台。 showImg(https://segmentfault.com/img/remote/1460000018532942?w=1078&h=1076); 0.引言 学Pyth...

    SunZhaopeng 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<