QGraphicsScene到HTML?

时间:2013-03-26 10:43:53

标签: qt pyqt pyside qgraphicsscene

使用Qt,我正在开发一个显示QGraphicsScene中项目的工具。项目都是多边形和QGraphicsTextItems。后者可以包含超链接。

问题:我正在尝试导出图表,我想保持超链接处于活动状态。

使用QImage渲染器会生成漂亮的PNG,但(显然)没有超链接。 QSvgRenderer生成的SVG也没有嵌入超链接。

QPrinter允许生成完成工作的PDF(或多或少) - 超链接 可点击,这就是我原则上需要的。除了我想在网上发布图表,因此PDF对我来说不是一个真正的选择。

我找不到任何方式在HTML表单中呈现QGraphicsScene。我错过了什么?有没有办法做到这一点?

由于

修改

代码示例:

from PySide import QtGui, QtCore
app = QtGui.QApplication([])

scene = QtGui.QGraphicsScene()
view = QtGui.QGraphicsView(scene)

item = QtGui.QGraphicsTextItem()
item.setOpenExternalLinks(True)
item.setHtml('<a href="http://stackoverflow.com">Hello</a>')
item.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse)

scene.addItem(item)

view.show()
app.exec_()

此示例显示具有可单击超链接的场景(打开与默认系统应用程序的链接)。在我的应用程序中,场景还包含一些图形项目,但我认为这足以得出这个想法:我希望在HTML中渲染(或打印或导出)这个场景,以便链接保持可点击状态。

以下代码导出为PDF:

pdf_printer = QPrinter()
pdf_printer.setOutputFormat(QPrinter.PdfFormat)
pdf_printer.setPaperSize(rect.size().toSize(), QPrinter.Point)
pdf_printer.setFullPage(True)
pdf_printer.setOutputFileName(filename)
pdf_painter = QPainter()
pdf_painter.begin(pdf_printer)
scene.render(pdf_painter, source=rect)
pdf_painter.end()

结果PDF确实包含了有效的超链接 - 这就是让我觉得所有机制都存在的原因。我只是找不到用HTML而不是PDF导出的方法。

0 个答案:

没有答案