gpt4 book ai didi

qt - 如何从 C++ 端多次将 QImage 对象设置为 QML 的 Image 元素?

转载 作者:行者123 更新时间:2023-12-04 03:07:16 26 4
gpt4 key购买 nike

我的 Qt 应用程序中的 C++ 代码端有一个 QImage 对象。

Image {
id: my_image
source: ""
}

我有 QML Connections 元素,我正在其中发送 QImage

Connections {
target: qimage_supplier
onNewQImage: {
recalled_media_image.source = new_qimage_supplied
}
}

问题:
是否可以将 QImage 对象设置为 Image QML 项的源?执行上述方法,其中 new_qimage_supplied 实际上是从 C++ 端发送的 QImage,它会提示以下内容:

Error: Cannot assign QImage to QUrl

如何将 QImage 对象设置为 Image QML 元素?

最佳答案

这是一个快速而肮脏的例子(不适用于复制和粘贴!)

//在 main.cpp 中(缺少导入)

class MyImageProvider: public QQuickImageProvider
{
QImage m_image;
public:
MyImageProvider(QImage img)
: QQuickImageProvider(QQuickImageProvider::Image)
, m_image(img)
{}

QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize) override {
qDebug() << m_image;
return m_image;
}
};

int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.addImageProvider("myimg", new MyImageProvider(QImage("C:/.../image.png")));
engine.load(QUrl(QStringLiteral("main.qml")));

return app.exec();
}

//在main.qml中

ApplicationWindow {
id: rootWin
width: 800; height: 600; visible: true

Image {
source: "image://myimg/1"
}
}

来源是:

image://registeredNameOfImageProvider/potentialId

关于qt - 如何从 C++ 端多次将 QImage 对象设置为 QML 的 Image 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47760752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com