我在绘画应用程序中实现了图层。
每个图层都有一个缩略图预览。
我希望图层的缩略图仅显示属于该图层的项目。
现在我调用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();
上面的代码渲染场景的所有时间,但这不是我想要的。
答案 0 :(得分:0)
如何仅选择具有特定父级的项目?
上面的代码渲染场景的所有时间,但这不是我的意思 想。
假设每个图层都有自己的最终父级(不是场景根),您可以简单地将图层根的可见性设置为它所代表的图层的可见性。子对象'继承'其父级的可见性状态(docs):
如果隐藏父项,则其所有子项也将被隐藏。如果 你显示一个父项,所有的孩子都会被展示,除非他们有 已明确隐藏(即,如果您在a上调用setVisible(false) 孩子,即使其父母被隐藏,也不会被重生,然后 再次显示。)