如何打印 QGraphicsView 的内容

Posted

技术标签:

【中文标题】如何打印 QGraphicsView 的内容【英文标题】:How to print content of a QGraphicsView 【发布时间】:2010-09-27 11:03:11 【问题描述】:

如何在 Qt 中打印QGraphicsView 的内容?

非常感谢。

【问题讨论】:

【参考方案1】:

看看Qt官方文档:http://doc.qt.io/archives/4.6/graphicsview.html#printing

进一步参考:

"Graphics View 通过其渲染函数QGraphicsScene::render()QGraphicsView::render() 提供单行打印。这些函数提供相同的API:您可以让场景或视图将其全部或部分内容渲染到任何绘图设备中通过将QPainter 传递给任一渲染函数。此示例展示了如何使用QPrinter 将整个场景打印到整页中。"

例子:

QGraphicsScene scene;
scene.addRect(QRectF(0, 0, 100, 200), QPen(Qt::black), QBrush(Qt::green));

QPrinter printer;
if (QPrintDialog(&printer).exec() == QDialog::Accepted) 
    QPainter painter(&printer);
    painter.setRenderHint(QPainter::Antialiasing);
    scene.render(&painter);

【讨论】:

非常感谢,我试了一下,它运行了。但我有一个问题。我的场景大约是 (0,0,2700,800) 并且不可读。你觉得有什么解决办法吗?

以上是关于如何打印 QGraphicsView 的内容的主要内容,如果未能解决你的问题,请参考以下文章

如何在不缩放场景的情况下与 QGraphicsView 左侧的矩形对齐?

在 QGraphicsView 中移动项目

如何制作小部件的屏幕截图并将其粘贴到 QGraphicsView 中?

QGraphicsView 不显示任何内容

Qt 部署 - QGraphicsView 不显示在其他机器上

如何在 QGraphicsView::Scale 之后调整 QGraphicsView 的大小