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();
上面的代码渲染场景的所有时间,但这不是我想要的
需要
假设每个层都有自己的最终父层(不是场景根),可以简单地将层根的可见性设置为它所表示的层的可见性。子对象“继承”其父对象的可见性状态():
如果隐藏父项,则其所有子项也将隐藏。如果
显示父项时,将显示所有子项,除非它们具有
已显式隐藏(即,如果在
子对象,即使其父对象已隐藏,也不会重新显示,然后
再次显示)
这就是层的工作原理:一个父项充当层的根项,如文档的这部分所述。通过隐藏它,我隐藏了图层的项目。你的意思是我应该隐藏除要渲染的层之外的所有层吗?我假设用户会注意到层的隐藏和显示。但我会试试看。