Qt catchtoimage()和scale产生两个重叠的图像?

时间:2018-07-26 09:31:44

标签: c++ qt qml

如果我在C ++中将Qt的grabtoimage()用于缩放的QQuickItem,则会得到两个重叠的图像。一个标度= 1,另一个标度为Qml。

Item {
    id: iItem
    objectname: "oItem"
    width: 200
    height: 200
    scale: 0.5
}

QQuickItem *visPlc= m_pRootObj->findChild<QQuickItem*>("oItem");

QEventLoop loop;
QSharedPointer<QQuickItemGrabResult> grabRes = visPlc->grabToImage();
loop.connect(grabRes.data(), &QQuickItemGrabResult::ready, &loop, &QEventLoop::quit);
loop.exec();
loop.exit();

是否只有一种方法可以获取缩放的物品?

1 个答案:

答案 0 :(得分:0)

对于感兴趣的人,我更改了以下内容:

错误的双张图片:

Item {
    id: iItem1
    objectname: "oItem"
    width: iItem2.width
    height: iItem2.height
    scale: 0.5 // moved to iItem2

   Item {
       id: iItem2
       width: 200
       height: 200
   }
}

单张图片:

Item {
    id: iItem1
    objectname: "oItem"
    width: iItem2.width
    height: iItem2.height

   Item {
       id: iItem2
       width: 200
       height: 200
       scale: 0.5
   }
}