2017-04-04 74 views
-1

我現在面臨的廢棄警告如何用SVG圖標創建一個wxPython按鈕?

wxPyDeprecationWarning: Call to deprecated item ImageFromStream. Use :class:`Image` instead. 
    svgimg = wx.ImageFromStream(StringIO.StringIO(svgpng),wx.BITMAP_TYPE_PNG) 
wxPyDeprecationWarning: Call to deprecated item BitmapFromImage. Use :class:`wx.Bitmap` instead 
svgbmp = wx.BitmapFromImage(svgimg) 

def getBmpFromSvg(self,svgxml, width, height): 
    """ 
    Credit goes to https://cyberxml.wordpress.com/2015/02/17/wxpython-wx-bitmap-icons-from-svg-xml/. Asked https://cyberxml.wordpress.com/2015/02/17/wxpython-wx-bitmap-icons-from-svg-xml/comment-page-1/#comment-11 to a version avoiding deprecated wx.BitmapFromImage. 
    """ 
    svgpng = cairosvg.svg2png(svgxml) 
    svgimg = wx.ImageFromStream(StringIO.StringIO(svgpng),wx.BITMAP_TYPE_PNG) 
    svgimg = svgimg.Scale(width, height, wx.IMAGE_QUALITY_HIGH) 
    svgbmp = wx.BitmapFromImage(svgimg) 
    return svgbmp 

playButtonImg = self.getBmpFromSvg(resource_string("[name]", os.path.join("resources", "icons", 'play-button.svg')), icon_size_default, icon_size_default) 
self.playButton = buttons.GenBitmapButton(self.videoPanel, bitmap=playButtonImg, name="play") 

我似乎還沒有找到如何從Icon's documentation創建一個SVG圖標按鈕信息(指出圖標應該是位圖,在SVG時間周圍似乎有點過時)和the icons overviewButton's documentation也只提及位圖。

即使我必須使用位圖,我想消除棄用警告。

我使用的是從Ubuntu 16.10源代碼構建的Phoenix 9b743cf3(它們未能使用git標籤)。

回答

1

該警告告訴您如何更正它。 wx.Image可以接受一個流的第一個參數(而不是wx.ImageFromStream)和wx.Bitmap可以接受wx.Image作爲第一個參數(而不是wx.BitmapFromImage

參見wx.Image.ConvertToBitmap