QQuickImageProvider
の実装でから派生した画像プロバイダーがありrequestPixmap
ます。
この画像プロバイダーは、Image
コンポーネントで正常に動作します。
今度は、同じ方法imageSource
で aを提供したいと思います。Button
しかし、画像が表示されません。何が問題になる可能性がありますか?
QML コード
Image {
anchors.fill: parent
anchors.margins: 10
source: "image://provider/" + model.DisplayRole
fillMode: Image.PreserveAspectFit
}
Button {
Layout.fillWidth: true
Layout.preferredHeight: width
iconSource: "image://provider/" + model.DisplayRole
onClicked: appCore.switch(model.DisplayRole)
}
C++ コード
QPixmap ImageProvider::requestPixmap(const QString &id, QSize *size, const QSize &requestedSize)
{
QModelIndex index;
bool foundId = false;
for(int row = 0; row < m_myModel->rowCount(); row++)
{
index = m_myModel->index(row, 0);
QString name = QVariant(m_myModel->data(index, Qt::DisplayRole)).toString();
if(name == id)
{
foundId = true;
break;
}
}
if(!foundId)
return QPixmap();
QIcon icon = m_myModel->data(index, Qt::DecorationRole).value<QIcon>();
QPixmap pixmap = icon.pixmap(128,128);
return pixmap;;
}