Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QGraphicscene仅呈现某些子级_Qt_Qgraphicsscene - Fatal编程技术网

Qt QGraphicscene仅呈现某些子级

Qt QGraphicscene仅呈现某些子级,qt,qgraphicsscene,Qt,Qgraphicsscene,我在绘画应用程序中实现了层。 每个层都有一个缩略图预览。 我希望图层的缩略图只显示属于该图层的项目。 现在我调用scene->render(),将所有项目渲染到缩略图。如何仅选择具有特定父项的项目 QSize size = QSize(scene_->width(), scene_->height()); QImage *thumbnail = new QImage(size, QImage::Format_ARGB32); thumbnail->fill(Qt::transp

我在绘画应用程序中实现了层。 每个层都有一个缩略图预览。 我希望图层的缩略图只显示属于该图层的项目。 现在我调用
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();
上面的代码渲染场景的所有时间,但这不是我想要的

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

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();
上面的代码渲染场景的所有时间,但这不是我想要的 需要

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

如果隐藏父项,则其所有子项也将隐藏。如果 显示父项时,将显示所有子项,除非它们具有 已显式隐藏(即,如果在 子对象,即使其父对象已隐藏,也不会重新显示,然后 再次显示)


这就是层的工作原理:一个父项充当层的根项,如文档的这部分所述。通过隐藏它,我隐藏了图层的项目。你的意思是我应该隐藏除要渲染的层之外的所有层吗?我假设用户会注意到层的隐藏和显示。但我会试试看。