繁体   English   中英

QVariant到QIcon / QPixmap / QImage

[英]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中定义的数据类型提供转换函数,例如QColorQImageQPixmap 换句话说,没有toColor()函数。 相反,您可以使用QVariant::value()qvariant_cast()模板函数。 例如:

 QVariant variant; ... QColor color = variant.value<QColor>(); 

逆变换(例如,从QColorQVariant )是自动的用于通过支持的所有数据类型QVariant ,包括GUI相关类型:

 QColor color = palette().background().color(); QVariant variant = color; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM