Форум сайта python.su
Почему скрипт не может работать полностью (скрипт работает в обычном браузере)? Помечен комментарием “no”.
И SVG не отображается на странице.
Мне нужно через Python определить размер svg-элемента “text”.
Можно как-то решить эту проблему?
import wx import wx.html2 html_string = """ <!DOCTYPE htm> <html> <head> <title>Hello World!</title> </head> <body> <svg viewBox="0 0 192 192" xmlns="http://www.w3.org/2000/svg" id="svg" height="100%" width="100%"> <rect transform="translate(64,128)" width="27" height="64" stroke-width=".5" fill="#ff0" stroke="#000" id="rect"/> <text font-family="monospace" font-size="16" transform="translate(64,141)" id="tsvg">Test Text</text> </svg> <script type="text/javascript"> var text = document.getElementById('tsvg'); alert(text); // ok var tw = text.getComputedTextLength(); alert(tw); // no var box = text.getBBox(); var w = box.width; var h = box.height; alert(w+" "+ h); // no </script> </body> </html> """ class MyBrowser(wx.Dialog): def __init__(self, *args, **kwds): wx.Dialog.__init__(self, *args, **kwds) sizer = wx.BoxSizer(wx.VERTICAL) self.browser = wx.html2.WebView.New(self) sizer.Add(self.browser, 1, wx.EXPAND, 10) self.SetSizer(sizer) self.SetSize((700, 700)) if __name__ == '__main__': app = wx.App() dialog = MyBrowser(None, -1) dialog.browser.SetPage(html_string, '') dialog.Show() app.MainLoop()
Офлайн