Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Wxpython. Выполнить скрипт в собственном браузере [RSS Feed]

#1 Янв. 28, 2019 14:15:51

ioprst
Зарегистрирован: 2018-03-25
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Wxpython. Выполнить скрипт в собственном браузере

Почему скрипт не может работать полностью (скрипт работает в обычном браузере)? Помечен комментарием “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()

Офлайн

  • Начало
  • » GUI
  • » Wxpython. Выполнить скрипт в собственном браузере[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version