2017-04-04 20 views
-1

は私がSVGアイコンを使ってwxPythonボタンを作成する方法は?

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") 

ため非推奨の警告

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) 

に直面していると私は(アイコンがあることを示すIcon's documentationからボタンのSVGのアイコンを作成する方法についての情報を検索していないようですSVGの周りにビットマップがあると思われます)、the icons overviewButton's documentationにはビットマップだけが記載されています。

ビットマップを使用する必要がある場合でも、私は非推奨警告を削除したいと思います。

私は、Phoenix 9b743cf3(彼らはgitタグを使用していません)をUbuntu 16.10のソースからビルドして使用しています。

答えて

1

警告メッセージは、修正方法を示します。 wx.Imageは、(代わりwx.ImageFromStreamの)最初の引数のストリームを受け入れることができるとwx.Bitmapは、(代わりwx.BitmapFromImageの)最初の引数としてwx.Imageを受け入れることができる

wx.Image.ConvertToBitmap

も参照します
関連する問題