QGraphicsScene 已废弃成员

以下 QGraphicsScene 类成员已被废弃。 它们被提供以保持旧源代码的正常运行。我们强烈建议不要在新代码中使用它们。

受保护函数

(已废弃) virtual voiddrawItems(QPainter *painter, int numItems, QGraphicsItem *[] items, const QStyleOptionGraphicsItem[] options, QWidget *widget = nullptr)

成员函数文档

[virtual protected, 已废弃] void QGraphicsScene::drawItems(QPainter *painter, int numItems, QGraphicsItem *[] items, const QStyleOptionGraphicsItem[] options, QWidget *widget = nullptr)

此函数已废弃。我们强烈建议不要在新代码中使用它。

在绘制背景之后和绘制前景之前,使用提供的 painter 绘制给定的 items。所有绘制都是在 scene 坐标系中完成的。在绘制每个项目之前,必须使用 QGraphicsItem::sceneTransform() 对画家进行转换。

options 参数是 items 中每个项目的样式选项对象列表。numItems 参数是 itemsoptions 中的项目数量。widget 参数是可选的;如果指定,它应指向正在绘制的小部件。

默认实现准备画家矩阵,然后在对所有项目调用 QGraphicsItem::paint()。重新实现此函数以提供场景中所有项目的自定义绘制;完全控制每个项目的绘制方式。在某些情况下,这可以显著提高绘制性能。

示例

void CustomScene::drawItems(QPainter *painter, int numItems,
                            QGraphicsItem *items[],
                            const QStyleOptionGraphicsItem options[],
                            QWidget *widget)
{
    for (int i = 0; i < numItems; ++i) {
         // Draw the item
         painter->save();
         painter->setTransform(items[i]->sceneTransform(), true);
         items[i]->paint(painter, &options[i], widget);
         painter->restore();
     }
}

自 Qt 4.6 开始,除非将 QGraphicsView::IndirectPainting 标志作为优化标志提供,否则此函数不再被调用。

另请参阅 drawBackground() 和 drawForeground()。

© 2024 The Qt Company Ltd. 本文档中的文档贡献是各自所有者的版权。提供的文档根据自由软件基金会发布的 GNU 自由文档许可协议版本 1.3 许可。Qt 和相应标志是 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。