pythonGUI 使用

发布于 更新于
本文目录
  1. pythonGUI使用
  2. 一、整体步骤
  3. 二、工具安装
  4. 三、工具使用
  5. 四、代码选择
  6. 五、函数使用

技术文章测试开发

1、安装pyinstaller 3.0

pythonGUI使用

一、整体步骤

  • 1、安装pyinstaller 3.0

  • 2、安装wxpython

  • 3、安装布局工具wxFormBuilder

  • 4、将png生成icon

  • 5、upx391w(打包成exe程序)

二、工具安装

三、工具使用

  • 第一个工具:wxFormBuilder(布局工具)

    • 1、准备一个窗体

      • 点击wxformbuilder上方的标签“forms”

      • 并点击标签下方的第一个类似窗体的图标“Frame”

      • 下面就会出现一个窗体

      • 说明:但是现在还不能直接往窗体上添加各种控件。咱们还需要给窗体添加布局器BoxSizer

    • 2、添加布局器

      • 点击wxformbuilder上方的标签“Layout

      • 并点击标签下方的图标“wxGridBagSizer”(倒数第3个)

      • 添加一个只有以列控件布局的布局器

      • 说明:窗体上并没有什么变化。但是窗口左边的目录树有变化了,窗体下多了一个布局器

    • 3、放置控件

      • 选中布局器wxGridBagSizer

      • 点击wxformbuilder上方的标签“Common

      • 控件介绍(左起)

        • wxbutton(按钮)

        • wxBitmapButton(问号提示按钮)

        • wxStaticText(文本)

        • wxTextCtrl(文本输入框)

        • wxComboBox(下拉选择框)

        • wxChoice(下拉选择框)

        • wxListBox(大文本框)

        • wxListCtrl(大下拉选择框)

      • 控件属性调整

        • name:实体对象的变量名

        • label:GUI页面显示的名称

        • 尺寸相关

          • size:控件尺寸

            • Width:宽度

            • height:高度

          • minimum_size:控件最小尺寸

            • Width:宽度

            • height:高度

          • manimum_size:控件最大尺寸

            • Width:宽度

            • height:高度

        • 控件位置设置(右侧空间区域拉到最下面,倒数第3个)

          • gbsizeritem

            • row:行,起始值从0开始

            • colum:列,起始值从0开始

  • 第二个工具:将png生成icon

    • 1、将png2ico.ip解压到D:\png2ico

    • 2、将要转化的png,切成如下规格的.png图片 248*248 128*128 64*64 48*48 32*35 16*16

    • 3、将这些.png图片全放到D:\png2ico目录

    • 4、在命令行,进入D:\png2ico

    • 5、再在命令行执行命令:png2ico qq.ico logo248.png logo128.png logo64.png logo48.png logo32.png logo16.png

    • 6、执行完,程序会在D:\png2ico目录生成qq.ico

  • 第三个工具:upx391w(exe程序打包工具)

    • 打包步骤 """ pyinstaller 打包 1、安装upx391w(解压即可) 2、在upx391w里面新建文件夹,将需要打包的.py文件放进去 3、cmd进入该目录执行命令:pyinstaller -wF dFraud.py realName.py start.py --upx-dir upx391w 4、upx391w\build01\dist 目录下会生成.exe文件 pyinstaller -wF --icon=D:\20170508\upx391w\build01\qq.ico dFraud.py realName.py start.py --upx-dir upx391w """

    • 把需要打包的py文件放到这个目录下,新建一个文件夹里面放需要打包的py文件

    • cmd 到这个新建的文件夹下

    • 执行命令 pyinstaller -wF --icon=D:\20170508\upx391w\build01\qq.ico dFraud.py realName.py start.py --upx-dir upx391w

四、代码选择

  • 选择python代码复制到你的.py文件

  • 复制代码后,进行脚本编写,绑定相关函数

五、函数使用

  • 文本框赋值 self.m_textCtrl104.SetValue(u'哇靠,发布借款报错了')

  • 获取文本框内容 value = self.m_textCtrl1.GetValue()

  • 获取下拉框的值 value = self.m_choice1.GetCurrentSelection()

  • 函数写法 def test_fun(self,event):# event:接收self.Bind方法的event参数,名字可以随便写

    self.m_textCtrl32.SetValue('嗯,测试成功')

  • 事件绑定 """ handler:绑定函数 source:绑定按钮 """ self.Bind(event=wx.EVT_BUTTON,handler=self.button1,source=self.m_button1)

  • 完整例子

  • # -*- coding: utf-8 -*-
    # @Time    : 01/06/2021 下午 2:10
    # @Author  : 小简
    # @File    : start.py
    
    
    # -*- coding: utf-8 -*-
    
    ###########################################################################
    ## Python code generated with wxFormBuilder (version Jun 17 2015)
    ## http://www.wxformbuilder.org/
    ##
    ## PLEASE DO "NOT" EDIT THIS FILE!
    ###########################################################################
    import wx
    import wx.xrc
    
    
    class MyFrame4(wx.Frame):
    
        def __init__(self, parent):
            wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition,
                              size=wx.Size(796, 455), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
    
            self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
    
            bSizer5 = wx.BoxSizer(wx.VERTICAL)
    
            self.button01 = wx.Button(self, wx.ID_ANY, u"测试按钮", wx.DefaultPosition, wx.DefaultSize, 0)
            bSizer5.Add(self.button01, 0, wx.ALL, 5)
    
            self.m_textCtrl32 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
            bSizer5.Add(self.m_textCtrl32, 0, wx.ALL, 5)
    
            self.SetSizer(bSizer5)
            self.Layout()
            self.Centre(wx.BOTH)
    
            # 事件处理
            self.Bind(event=wx.EVT_BUTTON,handler=self.test_fun,source=self.button01)
    
        # def __del__(self):
        #     pass
    
        def test_fun(self,event):
          # event:接收self.Bind方法的event参数,名字可以随便写
            self.m_textCtrl32.SetValue('测试成功')
    
    if __name__ == '__main__':
        app = wx.App(False)
        test = MyFrame4(None) # 创建窗口
        test.Centre() # 窗口居中
        test.Show() # 显示窗口
        app.MainLoop() # 运行程序

来源:testingpai

继续阅读