2017-04-04 1 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 overview. Button's documentation도 비트 맵을 언급합니다.

비트 맵을 사용해야하는 경우에도 비추천 경고를 제거하고 싶습니다.

나는 Phoenix 9b743cf3 (그들은 git 태그를 사용하지 못함)을 사용하고 있습니다 (우분투 16.10에서 소스로 빌드 됨).

답변

1

경고는 경고를 수정하는 방법을 알려줍니다. wx.Image는 스트림을 (대신 wx.ImageFromStream의) 첫 번째 인수를 받아 들일 수 및 wx.Bitmap은 (대신 wx.BitmapFromImage의)

wx.Image.ConvertToBitmap

을 참조하십시오 wx.Image로 첫 번째 인수를 받아 들일 수
관련 문제