Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 30, 2019 11:06:13

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

cefpython3 связь JS и Python

Python 3.4. GUI - wxPython.
Необходимо вычислить размер текста в пикселях, объявленного в SVG документе.

 <svg viewBox="0 0 {width} {height}" xmlns="http://www.w3.org/2000/svg" id="svg" height="100%" width="100%">
  <text font-family="{font}" font-size="{size}" id="user_text">{text}</text>
</svg>
Средствами Python и wxPython это сделать не получается. wxPython позволяет определить размеры, который будет занимать текст с определенным шрифтом, размером и т.д., но они не верны для SVG (из-за масштабирования svg-документа, как я понял).
Нашел способ вычисления размера текста через JS:
 let text = document.getElementById("user_text");
let box = text.getBBox();
let w = box.width;
let h = box.height;
Это решение дает верный результат.
Мне необходимо использовать значения, вычисленные в JS, в моей GUI программе на Python.
Встроенные в wxPython web-движок такое не вытягивает (там какой-то старый IE).
Посоветовали библиотеку cefpython3 - Chromium Embedded Framework. Она позволяет подключить браузер к GUI. Это работает отлично.
Как я понял из туториала, из Python можно вызвать JS методы, предварительно их объявив.
Но мне никак не удается реализовать механизм, чтобы после выполнения функции JS вернуть результат обратно в Python и использовать его.
Возможно ли вообще такое? Если да, подскажите, пожалуйста, в какую сторону копать.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version