截屏:
这个问题可能是什么原因:是 Cygwin 问题,还是 wx/wxPython 问题,还是 Matplotlib 问题?
除了在每个情节上弹出有关缺少按钮图像的错误外,一切正常
后天:当我编译wx 以使用本机 Windows 图形界面(无需安装 X 服务器和 gtk)时,它基本上是 Windows 编译(不是 Cygwin 编译),因此它不理解 Cygwin POSIX 路径,而 Cygwin 包可以使用它。
不仅仅是 MPL 有这种问题,任何将 Cygwin 资源作为文件名传递给 wx 的 wx 包都有问题。一种解决方法是传递 python 对象而不是路径,因此对于上面的示例,这可以是这样的解决方法:
Matplotlib 使用_load_bitmap(filename as str)
函数将这些按钮图形通过wx.Bitmap(filename)
. 像这样打补丁backend_wx.py
:
# bmp = wx.Bitmap(bmpFilename)
wxf = open(bmpFilename, 'rb')
bmp = wx.BitmapFromImage(wx.ImageFromStream(wxf, wx.BITMAP_TYPE_ANY))
wxf.close()
为 Matplotlib 解决了这个问题并且运行没有问题
我对适用于所有 wx 应用程序的更强大的解决方案感兴趣