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:高度
- size:控件尺寸
- 控件位置设置(右侧空间区域拉到最下面,倒数第3个)
- gbsizeritem
- row:行,起始值从0开始
- colum:列,起始值从0开始
- gbsizeritem
- 1、准备一个窗体
- 第二个工具:将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
- 1、将png2ico.ip解压到
- 第三个工具: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.com!
注册 关于