gpt4 book ai didi

c++ - 将派生自 QAbstractListModel 的类提供的 QIcon 绑定(bind)到 QML Image

转载 作者:行者123 更新时间:2023-11-30 01:54:34 25 4
gpt4 key购买 nike

我尝试将由派生自 QAbstractListModel 的类提供的 QIcon 绑定(bind)到 QML 图像,如下所示:

Component {
id: myDelegate
//...
Column {
anchors.verticalCenter: parent.verticalCenter
spacing: 5

Image {
source: model.DecorationRole
}

Text {
text: model.DisplayRole
//...
}

但这会导致这个错误:

Unable to assign QIcon to QUrl

如何正确地做到这一点?

最佳答案

您不能将 QIcon 指定为 QML Image 的源。

您需要做的是为您的图标选择自定义 URL 格式,例如

images://myicons/<icon_id>

此字符串是您为 Image.source 设置的 URL。

现在您创建并注册了一个图像提供程序,它会在您从 QML 发送请求的 URL 时传送图标:

  • 创建 QQuickImageProvider 的子类,例如MyIconProvider
  • 重写以id为参数并返回像素数据的函数requestPixmap

然后您在main.cpp

中注册图像提供程序
MyIconProvider *mip = new MyIconProvider();
engine.addImageProvider("myicons", mip);

关于c++ - 将派生自 QAbstractListModel 的类提供的 QIcon 绑定(bind)到 QML Image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21850839/

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