我想提取一个存储在QTreeWidget列中的QIcon,如Qt :: DecorationRole.
QTreeWidgetItem *item = ui->treeWidget->topLevelItem(index);
const QIcon &icon = item->data(0, Qt::DecorationRole)._howToConvert_();
Run Code Online (Sandbox Code Playgroud)
但是,我只能将数据作为QVariant获取,而我找不到从QVariant转换为QIcon的函数.有可能吗?
sas*_*alm 24
好的,在文档中QVariant
找到了答案,以便进一步检查.
这有效:
QImage image = variant.value<QImage>();
Run Code Online (Sandbox Code Playgroud)
我没有立即找到它,因为我搜索了QIcon/QPixmap/QImage,它们根本没有被提及,我应该搜索QColor而不是:)
关于GUI类型的注释
因为
QVariant
是QtCore库的一部分,它不能在QtGui定义的数据类型,如提供转换功能QColor
,QImage
和QPixmap
.换句话说,没有任何toColor()
功能.相反,您可以使用QVariant::value()
或qvariant_cast()
模板功能.例如:Run Code Online (Sandbox Code Playgroud)QVariant variant; ... QColor color = variant.value<QColor>();
对于所支持的所有数据类型,包括与GUI相关的类型,逆转换(例如,从
QColor
到QVariant
)是自动的QVariant
:Run Code Online (Sandbox Code Playgroud)QColor color = palette().background().color(); QVariant variant = color;
归档时间: |
|
查看次数: |
8842 次 |
最近记录: |