QGraphicsScene只渲染某些孩子

时间:2015-03-22 11:02:00

标签: qt qgraphicsscene

我在绘画应用程序中实现了图层。 每个图层都有一个缩略图预览。 我希望图层的缩略图仅显示属于该图层的项目。 现在我调用scene->render()将所有项目呈现给缩略图。如何仅选择具有特定父级的项目?

QSize size = QSize(scene_->width(), scene_->height());
QImage *thumbnail = new QImage(size, QImage::Format_ARGB32);
thumbnail->fill(Qt::transparent); // Start all pixels transparent
QPainter imagePainter(thumbnail);
imagePainter.setRenderHint(QPainter::Antialiasing);
scene_->render(&imagePainter);
imagePainter.end();

上面的代码渲染场景的所有时间,但这不是我想要的。

1 个答案:

答案 0 :(得分:0)

  

如何仅选择具有特定父级的项目?

     

上面的代码渲染场景的所有时间,但这不是我的意思   想。

假设每个图层都有自己的最终父级(不是场景根),您可以简单地将图层根的可见性设置为它所代表的图层的可见性。子对象'继承'其父级的可见性状态(docs):

  

如果隐藏父项,则其所有子项也将被隐藏。如果   你显示一个父项,所有的孩子都会被展示,除非他们有   已明确隐藏(即,如果您在a上调用setVisible(false)   孩子,即使其父母被隐藏,也不会被重生,然后   再次显示。)