在win7-64bit环境下,boa-constructor 0.6.1 的palette面板中没有控件图标的解决方法

针对Boa Constructor 0.6.1在Win7 64位环境下Palette面板控件图标显示异常的问题,本文提供了两种修改Palette.py文件的具体解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在win7-64bit环境下,boa-constructor 0.6.1 的palette面板中没有控件图标,空白一片。将面板窗口拉大,发现那些图标在很下面的位置,X轴的排列与正常状态一致。

软件环境

python2.6.6
wxPython2.8-win32-unicode-2.8.11.0-py26
boa-constructor-0.6.1.src.win32


上网查到解决办法:

在boa根目录,找到 Palette.py,将 408行的语句
    newButton = btnType(self, mID, None, wx.Point(self.posX, self.posY),
修改为
    newButton = btnType(self, mID, None, wx.Point(self.posX, 0),

就可以正常使用了

 

————————————————————————————————————————

另外,可以直接修改 374行,self.posY 的计算方法:

        self.posY = int((self.GetSize().y -(24+self.buttonBorder))/2)

 

修改为

        self.posY = int((self.GetSize().y + 1 -(24+self.buttonBorder))/2)

就正常了。

 

 

估计这是自动取整的时候,四舍五入问题。应该是在边界条件下,在win7下面与xp的算法不一致引起的。 

测试过,+0.0000001 也能正常计算 self.posY 。

 

在使用boa-constructor结合wxPython开发Python Windows应用程序时,可能会遇到MainLoop冲突问题。为了解决这个问题,可以考虑以下几个方面的操作步骤和最佳实践: 参考资源链接:[Python开发Windows桌面程序:从入门到打包发布](https://wenku.csdn.net/doc/5b9bue2ur4?spm=1055.2569.3001.10343) 首先,确保你的boa-constructor环境wxPython库是兼容的版本。不兼容的版本可能会导致程序在运行时出现不可预见的问题,包括MainLoop冲突。通常,最新版本的boa-constructor与最新版本的wxPython一起使用时,能够提供最佳的兼容性和稳定性。 其次,在boa-constructor中,可以尝试调整你的主循环(MainLoop)的初始化方式。wxPython提供了wx.App和wx.PySimpleApp两种应用程序接口,根据boa-constructor文档和你的具体需求选择合适的接口,并确保在程序中只初始化一次。 再次,检查你的应用程序代码,确保没有boa-constructor之外的地方调用wxWidgets的函数或者创建其他wxPython的App实例。这可能会导致两个不同的MainLoop实例同时运行,从而产生冲突。 如果你在将程序打包为exe文件时遇到问题,可以尝试使用py2exe。py2exe是一个强大的工具,它能够将Python程序和所有依赖项打包成一个独立的exe文件。在打包之前,请确认你的`setup.py`文件中正确配置了所有需要包含的文件和库。确保在配置文件中指定了wxPython的安装路径,这样py2exe在打包过程中能够正确找到并包含wxPython库。 最后,如果上述方法仍然无法解决冲突问题,建议查阅《Python开发Windows桌面程序:从入门到打包发布》这本书。书中不仅涵盖了使用boa-constructorwxPython开发GUI应用的基础,还包括了详细的故障排除指南和代码打包发布教程。这本资源将为你提供全面的技术支持,帮助你深入理解并解决MainLoop冲突以及其他可能遇到的问题。 参考资源链接:[Python开发Windows桌面程序:从入门到打包发布](https://wenku.csdn.net/doc/5b9bue2ur4?spm=1055.2569.3001.10343)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值