蟒蛇 3.4。图形用户界面 - 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;
该解决方案给出了正确的结果。
我需要在我的 Python GUI 程序中使用 JS 中计算出来的值。
wxPython 中内置的网络引擎并没有把它拉出来(有一些旧的 IE)。
他们建议图书馆 cefpython3 - Chromium Embedded Framework。它允许您将浏览器连接到 GUI。这很好用。
正如我从教程中了解到的,您可以通过首先声明它们来从 Python 调用 JS 方法。GitHub/示例
但是我没有办法实现一种机制,以便在执行一个 JS 函数后,将结果返回给 Python 并使用它。
这甚至可能吗?如果是,请告诉我,在哪个方向挖掘。
一般来说,他们提供了一个链接(开发人员)到一个更简单的例子。结果是以下(非理想)解决方案:
在py_function中,就是需要获取的那两个float值\u200b\u200b。