赞
踩
安装布局工具(wxFormBuilder_v3.5.1-rc1.exe)
安装第三方库
pip install pyinstaller
pip install wxpython
工具安装
1、安装图像工具png2ico:绿色版解压即可
2、安装打包工具upx391w:绿色版解压即可
一、布局工具(wxFormBuilder) 第一步:准备一个窗体【forms 可以理解为html文件】 1、点击wxformbuilder上方的标签“forms” 2、并点击标签下方的第一个类似窗体的图标“Frame” 3、下面就会出现一个窗体 4、说明:但是现在还不能直接往窗体上添加各种控件。咱们还需要给窗体添加布局器BoxSizer 第二步:添加布局器【可以理解为html标签】 1、点击wxformbuilder上方的标签“Layout(倒数第3个) 2、并点击标签下方的图标“wxGridBagSizer”(顺数第5个) 3、添加一个只有以列控件布局的布局器 4、说明:窗体上并没有什么变化。但是窗口左边的目录树有变化了,窗体下布局器多了一个红色边框 第三步:放置控件【可以理解为标签元素】 控件介绍(左起) 1、wxbutton(按钮) 2、wxBitmapButton(问号提示按钮) 3、wxStaticText(文本) 4、wxTextCtrl(文本输入框) 1、选中wxTextCtrl元素设置默认值 2、value写入默认值 3、控制自动换行: wxTextCtrl---style---勾选wx.TE_MULTILINE 5、wxComboBox(下拉选择框) 6、wxChoice(下拉选择框) 1、选择下来元素 2、添加下拉选项 wxChoice---choices---点右边---添加选项 3、selection:通过索引指定默认选项值,0表示选择第一个选项 7、wxListBox(大文本框) 8、wxListCtrl(大下拉选择框) 第四步:调整空间位置 控件属性说明 1、name:实体对象的变量名 2、label:GUI页面显示的名称 3、控件尺寸属性 1、wxWindow---size:Width:宽度,height:高度 4、控件位置属性 1、gbsizeritem--row,column:行,列起始值为0
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
"""
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
"""
1、把需要打包的py文件放到这个目录下,新建一个文件夹里面放需要打包的py文件
2、cmd 到这个新建的文件夹下
3、执行命令
如果是在build目录下就不需要加F参数
pyinstaller -wF --icon=qq.ico demo01.py --upx-dir upx391w
在外面目录
pyinstaller -wF --icon=D:\20170508\upx391w\build01\qq.ico dFraud.py realName.py start.py --upx-dir upx391w
1、文本框赋值 self.m_textCtrl104.SetValue(u'哇靠,发布借款报错了') 2、获取文本框内容 value = self.m_textCtrl1.GetValue() 3、获取下拉框的值 value = self.m_choice1.GetCurrentSelection() 4、事件函数语法 def test_fun(self,event): #event:接收self.Bind方法的event参数,名字可以随便写 self.m_textCtrl32.SetValue('嗯,测试成功') 5、事件绑定 """ handler:绑定函数 source:绑定按钮 """ self.Bind(event=wx.EVT_BUTTON,handler=self.button1,source=self.m_button1)
""" event:接收self.Bind方法的event参数,名字可以随便写 value = self.m_textCtrl1.GetValue() 获取文本内容 value = self.m_choice1.GetCurrentSelection() 获取下拉框的值 self.m_textCtrl2.SetValue(response.json()) # 设置文本框的值 """ import requests import wx import wx.xrc import ast import json class MyFrame1(wx.Frame): def __init__(self, parent): wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition, size=wx.Size(900, 560), style=wx.DEFAULT_FRAME_STYLE | wx.MINIMIZE_BOX) self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize) gbSizer1 = wx.GridBagSizer(0, 0) gbSizer1.SetFlexibleDirection(wx.BOTH) gbSizer1.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.m_staticText1 = wx.StaticText(self, wx.ID_ANY, u"接口地址", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText1.Wrap(-1) gbSizer1.Add(self.m_staticText1, wx.GBPosition(0, 0), wx.GBSpan(1, 1), wx.ALL, 5) self.m_textCtrl1 = wx.TextCtrl(self, wx.ID_ANY, u"http://httpbin.org/post", wx.DefaultPosition, wx.Size(300, -1), 0) gbSizer1.Add(self.m_textCtrl1, wx.GBPosition(0, 1), wx.GBSpan(1, 1), wx.ALL, 5) self.m_staticText2 = wx.StaticText(self, wx.ID_ANY, u"请求参数", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText2.Wrap(-1) gbSizer1.Add(self.m_staticText2, wx.GBPosition(1, 0), wx.GBSpan(1, 1), wx.ALL, 5) self.m_textCtrl2 = wx.TextCtrl(self, wx.ID_ANY, u"{\n\"user_name\":\"admin\",\n\"passwd\":\"123456\"\n}", wx.DefaultPosition, wx.Size(300, 100), wx.TE_MULTILINE) gbSizer1.Add(self.m_textCtrl2, wx.GBPosition(1, 1), wx.GBSpan(1, 1), wx.ALL, 5) self.m_staticText3 = wx.StaticText(self, wx.ID_ANY, u"请求类型", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText3.Wrap(-1) gbSizer1.Add(self.m_staticText3, wx.GBPosition(2, 0), wx.GBSpan(1, 1), wx.ALL, 5) m_choice1Choices = [u"POST", u"GET"] self.m_choice1 = wx.Choice(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_choice1Choices, 0) self.m_choice1.SetSelection(0) gbSizer1.Add(self.m_choice1, wx.GBPosition(2, 1), wx.GBSpan(1, 1), wx.ALL, 5) self.m_staticText4 = wx.StaticText(self, wx.ID_ANY, u"响应结果", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText4.Wrap(-1) gbSizer1.Add(self.m_staticText4, wx.GBPosition(3, 0), wx.GBSpan(1, 1), wx.ALL, 5) self.m_textCtrl3 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(300, 300), wx.TE_MULTILINE) gbSizer1.Add(self.m_textCtrl3, wx.GBPosition(3, 1), wx.GBSpan(1, 1), wx.ALL, 5) self.m_button1 = wx.Button(self, wx.ID_ANY, u"发送请求", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer1.Add(self.m_button1, wx.GBPosition(0, 2), wx.GBSpan(1, 1), wx.ALL, 5) self.SetSizer(gbSizer1) self.Layout() self.Centre(wx.BOTH) #绑定事件 self.Bind(event=wx.EVT_BUTTON, handler=self.test_fun, source=self.m_button1) def __del__(self): pass def test_fun(self,event): try: url = self.m_textCtrl1.GetValue() data = self.m_textCtrl2.GetValue() method_num = self.m_choice1.GetCurrentSelection() method = "POST" if method_num == 0 else "GET" response = requests.request(method,url,json=ast.literal_eval(data)) self.m_textCtrl3.SetValue(json.dumps(response.json(),indent=4)) # 设置文本框的值 except Exception as e: self.m_textCtrl3.SetValue(e) if __name__ == '__main__': app = wx.App(False) test = MyFrame1(None) # 创建窗口 test.Centre() # 窗口居中 test.Show() # 显示窗口 app.MainLoop() # 运行程序
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。