" NotImplementedError:此平台上没有wxGCDC"在wxPython中

时间:2015-02-19 12:05:06

标签: python linux wxpython wxwidgets

我使用以下配置从xfce4桌面环境的linux上的源代码安装了wxPython 2.8.12.1:

../configure --prefix=/opt/wx/2.8 --build=i686-pc-linux --disable-precomp-headers --without-opengl --enable-graphics_ctx

结果我收到以下错误:

dc: <wx._gdi.BufferedPaintDC; proxy of <Swig Object of type 'wxBufferedPaintDC *' at 0x5e3550> >
Traceback (most recent call last):
  File "gra.py", line 15, in OnPaint
    gc = wx.GCDC(dc)
  File "/opt/staff/wxPython-src-2.8.12.1/wxPython/wx/_gdi.py", line 6068, in __init__
    _gdi_.GCDC_swiginit(self,_gdi_.new_GCDC(*args))
NotImplementedError: wxGCDC is not available on this platform.

在执行这行代码的过程中:

gc = wx.GCDC(dc)

问题是什么?我如何在我的平台上提供wxGCDC?

不幸的是我必须从源代码安装wxPython(不能使用这个库的预编译版本)。

1 个答案:

答案 0 :(得分:1)

如果wxGraphicsConext未包含在wxWidgets构建中,则wxGCDC将不可用,并且在构建wxWidgets时需要在configure选项中打开它。 (并且,IIRC,如果未安装某些依赖库,它可能会再次自动关闭。)因此,请检查wxWidgets的构建,并观察configure的输出以确保启用了图形上下文选项。如果您还没有自己构建它,您可能需要考虑这样做。

我还建议您切换到wxPython 3.0.x(经典)。它主要与2.8.12兼容,不需要对代码进行很多更改。此外,3.0.x还有大量修复和补充,是即将推出的新版本的wxPython的良好踏脚石。