Windows开发( Python )中遇到的一些问题
2017-08-13 18:27
260 查看
转载请注明出处,http://blog.csdn.net/Bule_Zst/article/details/77148705
最近,因为公司(父亲)的某些特别需求,需要自己开发一款面向windows的软件,因为比较小型,果断选择了python(Boa + wxPython + PyInstaller),在开发过程中,遇到了很多问题,这里做一个总结。
入门教程:
BOA constructor安装与使用
PyInstaller(windows开发,打包python软件为exe)使用教程
PS: 通过设置
按钮点击事件传参方法
第一种,将
第二种,在OnButton1Button(self, event)函数中,通过event.GetEventObject()可获取触发事件的组件。
在Onclick点击事件中循环批量为scrolledPanel中的组件改变颜色,只有当全部设置完后,颜色才会被改变。
解决方法:
无意中发现,当scrolledPanel滚动条位置发生改变时,修改的颜色会被显示出来,因此,在每次修改颜色后加上
为TextCtrl设置内容改变事件,
若在自定义函数中添加组件(如Button)报错,只需要将代码放到_init_ctrls中即可
添加组件传参的时候,只能传入常量,不能传入变量,如
GenStaticText这个组件添加后,关闭编辑窗口会报错,原因是Python默认的是ascii,无法处理非ascii字符。
解决方法:在python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容为:
然后重启Boa
最近,因为公司(父亲)的某些特别需求,需要自己开发一款面向windows的软件,因为比较小型,果断选择了python(Boa + wxPython + PyInstaller),在开发过程中,遇到了很多问题,这里做一个总结。
入门教程:
BOA constructor安装与使用
PyInstaller(windows开发,打包python软件为exe)使用教程
wxPython
为DirDialog设置默认打开目录dlg = wx.DirDialog(self, u"选择文件夹", style = wx.DD_DEFAULT_STYLE, defaultPath = u"d:\\" )
PS: 通过设置
defaultPath = os.getcwd()可默认打开当前文件所在目录
按钮点击事件传参方法
第一种,将
self.button1.Bind(wx.EVT_BUTTON, self.OnButton1Button, id=wxID_FRAME1BUTTON1)中的
self.OnButton1Button换成
lambda evt, mark=2 : self.OnButton1Button(evt,mark),2就是传进去的参数,记得在OnButton1Button函数中的添加mark参数。
第二种,在OnButton1Button(self, event)函数中,通过event.GetEventObject()可获取触发事件的组件。
在Onclick点击事件中循环批量为scrolledPanel中的组件改变颜色,只有当全部设置完后,颜色才会被改变。
解决方法:
无意中发现,当scrolledPanel滚动条位置发生改变时,修改的颜色会被显示出来,因此,在每次修改颜色后加上
self.scrolledPanel2.Scroll(0, 2)
self.scrolledPanel2.Scroll(0, 0)来实现立即显示修改的颜色。
为TextCtrl设置内容改变事件,
self.textCtrl1.Bind(wx.EVT_TEXT, self.onTextCtrlValueChange )(用Boa生成的代码会自动添加id参数,导致该语句失效,遇到这种情况,删掉id即可)
Boa
必须保持它自带的程序架构,如Frame中的init_ctrls + __init__ 结构,否则会报错。若在自定义函数中添加组件(如Button)报错,只需要将代码放到_init_ctrls中即可
添加组件传参的时候,只能传入常量,不能传入变量,如
self.button1 = wx.Button(id=wxID_FRAME1BUTTON1, label=str( 10 ), name='button1', parent=self.panel1, pos=wx.Point(296, 184), size=wx.Size(75, 24), style=0) 上面的不会报错,但是下面的就会报错 i = 10 self.button1 = wx.Button(id=wxID_FRAME1BUTTON1, label=str( i ), name='button1', parent=self.panel1, pos=wx.Point(296, 184), size=wx.Size(75, 24), style=0)
GenStaticText这个组件添加后,关闭编辑窗口会报错,原因是Python默认的是ascii,无法处理非ascii字符。
解决方法:在python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容为:
# encoding=utf8 import sys reload(sys) sys.setdefaultencoding('utf8')
然后重启Boa
相关文章推荐
- Windows在pip install tensorflow遇到的问题 一些python安装包的时候,超时问题以及权限问题
- windows下的python多版本共存遇到的一些问题
- 开发基于状态机的通用两级审批工作流中遇到的一些问题及场景
- webservices客户端开发时遇到的一些问题
- Python的开发插件PyDev在Eclipse下的安装过程(解决mylyn的问题in Windows)
- 关于在WindowsXp 环境下Python2.6 + web.py 构建WEB开发环境遇到的问题
- 关于Script.NET Python开发包的一些问题解答
- 最近oracle开发中遇到的一些问题及解决办法(三)待续
- 在线翻译小工具开发过程遇到的一些问题
- android开发过程中遇到的一些问题汇总
- 用gtk+在windows下开发的一些初级问题
- Windows XP Embedded (XPE) ramdisk 启动遇到的一些问题和解决方法--part2
- VC++6.0下开发windows应用程序遇到的问题
- Windows XP Embedded (XPE) ramdisk 启动遇到的一些问题和解决方法--part1
- C游戏开发中遇到的一些问题
- 安装Windows 2003 SP2后可能遇到的一些问题
- Windows驱动开发入门遇到的问题和困难
- 时隔2年的一篇blog,给一些遇到此问题需要帮助的java me开发人员
- 最近oracle开发中遇到的一些问题及解决办法(五)待续
- 在web application下对SPS的OM进行开发时遇到的一些问题