Ответ 1
ОК, нашла ответ в документы для 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;