将QVariant转换为QIcon/QPixmap/QImage

17

我想从QTreeWidget的一列中存储的Qt :: DecorationRole中提取一个已经存在的QIcon。

QTreeWidgetItem *item = ui->treeWidget->topLevelItem(index);
const QIcon &icon = item->data(0, Qt::DecorationRole)._howToConvert_();

不过,我只能以QVariant的形式获取数据,而且我找不到将QVariant转换为QIcon的函数。这可行吗?

2个回答

29

好的,经过进一步查看,在QVariant的文档中找到了答案。

这个可以工作:

QImage image = variant.value<QImage>();

4
如果你有疑问:同样适用于任何你声明为元类型并在用户角色中使用的自定义类型。 - leemes

0
我找到了解决方案,如下所示:
QImage name_image = table_store_multi_model_->item(i_row,0)->data(Qt::DecorationRole).value().toImage();

通常我们使用data()方法来读取数据,但是这里需要一个参数"Qt::DecorationRole"。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接