我找到了一个可能的解决方案,使用QWebFrame::renderTreeDump()and QWebFrame::findAllElements()(Qt 4.6 中的新功能)。
它并不完全“提供额外的渲染层”,但完成了我想做的事情:我调用findAllElements()来抓取 DOM 树,通过设置 HTML 元素的属性来应用我想要的任何逻辑。
对于更复杂的操作,例如用我自己的渲染过程替换表单控件,我需要抓取 DOM 树和渲染树,修补 DOM 树,以便元素不会被发送到QPrinter. 最后,我抓取生成的 PDF 文件,使用从渲染树和 DOM 树获得的信息注入我自己渲染的控件。
这感觉不必要地复杂。有谁对这个问题有更优雅的解决方案吗?
| 归档时间: |
|
| 查看次数: |
720 次 |
| 最近记录: |