pythonGUI 使用
1、安装pyinstaller 3.0
pythonGUI使用
一、整体步骤
1、安装pyinstaller 3.0
2、安装wxpython
3、安装布局工具wxFormBuilder
4、将png生成icon
5、upx391w(打包成exe程序)
二、工具安装
安装布局工具(wxFormBuilder_v3.5.1-rc1.exe)
安装第三方库 pip install pyinstaller pip install wxpython
安装图像工具png2ico
绿色版解压即可
安装打包工具upx391w
绿色版解压即可
三、工具使用
第一个工具: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:\png2ico2、将要转化的png,切成如下规格的.png图片
248*248 128*128 64*64 48*48 32*35 16*163、将这些.png图片全放到
D:\png2ico目录4、在命令行,进入
D:\png2ico5、再在命令行执行命令:
png2ico qq.ico logo248.png logo128.png logo64.png logo48.png logo32.png logo16.png6、执行完,程序会在
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