[英]QVariant to QIcon/QPixmap/QImage
我想提取一个存储在QTreeWidget列中的QIcon,如Qt :: DecorationRole。
QTreeWidgetItem *item = ui->treeWidget->topLevelItem(index);
const QIcon &icon = item->data(0, Qt::DecorationRole)._howToConvert_();
但是,我只能将数据作为QVariant获取,而我找不到从QVariant转换为QIcon的函数。 有可能吗?
好的,在进一步检查后, 在QVariant
的文档中找到了答案。
这有效:
QImage image = variant.value<QImage>();
我没有立即找到它,因为我搜索了QIcon / QPixmap / QImage,它们根本没有被提及,我应该搜索QColor而不是:)
关于GUI类型的注释
因为
QVariant
是QtCore库的一部分,所以它不能为QtGui中定义的数据类型提供转换函数,例如QColor
,QImage
和QPixmap
。 换句话说,没有toColor()
函数。 相反,您可以使用QVariant::value()
或qvariant_cast()
模板函数。 例如:QVariant variant; ... QColor color = variant.value<QColor>();
逆变换(例如,从
QColor
到QVariant
)是自动的用于通过支持的所有数据类型QVariant
,包括GUI相关类型:QColor color = palette().background().color(); QVariant variant = color;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.