公式渲染
CalculusCalculator 在多处将表达式以数学公式形式呈现,主要依赖 LaTeX。
结果公式渲染
求导、积分、函数性质、变形、方程求解等模块的计算结果,会通过 core/render.py 将 LaTeX
转换为 SVG,并在 QGraphicsView 中渲染显示,支持浅色 / 深色背景。
- 浅色主题:视图背景为白色
- 深色主题:视图背景为黑色
- 切换主题后,已显示的公式会自动按新配色刷新
计算选项卡的 LaTeX 输出
"计算"选项卡提供三种计算引擎,其中:
- SymPy 符号引擎:基于 SymPy 进行符号运算,结果同时以 LaTeX 代码和纯文本两种形式显示。
- LaTeX 代码生成引擎:根据输入的 Python 表达式直接生成对应的 LaTeX 代码,便于复制到论文、笔记中。
帮助文档渲染
内置"帮助"页面使用 QTextBrowser 显示静态文档(v1.6.1 起由 QWebEngineView 改为 QTextBrowser),
显著提升加载性能,并随主窗口缩放自适应调整大小。
输入即 LaTeX
在任意表达式输入框中,以 $ 开头的 LaTeX 代码会被自动解析为 SymPy 表达式后再渲染,
详见 字符串解析。
Python API
渲染逻辑位于 core/render.py,对外函数如下:
| 函数 | 说明 |
|---|---|
setGraphicsView(n, l, g) |
将 LaTeX 表达式 l(前缀名 n)渲染到 QGraphicsView g。自动按父窗口主题设置文字 / 背景色,并缓存以便主题切换后刷新。 |
refreshGraphicsView() |
主题切换后,重绘所有已缓存的图形视图。 |
setGraphicsViewTheme(main_class, parent_class) |
设置某窗口内所有 QGraphicsView 的背景色(浅色白 / 深色黑)。 |
clearGraphicsView(g) |
清空 QGraphicsView g 中的渲染结果并移除其缓存,用于求解前清除上一次内容(QGraphicsView 没有 setHtml 方法,故需用此函数代替)。 |
applyPlotTheme(fig, ax, theme) |
将 matplotlib Figure / 坐标轴(2D 或 3D)适配为浅色 / 深色主题配色,返回 (bg, fg, grid_color, axis_color) 供继续设置网格、坐标轴线等;函数绘图与平面 / 立体几何绘图均通过它实现暗色模式。 |
Note
渲染使用 Matplotlib 的 Agg 后端生成 SVG,再通过 QGraphicsSvgItem 显示;中文以 CJK 字体作为普通文本渲染,公式部分以 mathtext 数学模式排版,避免中文显示为方块(tofu)。