tldr :
我注意到QMatrix4x4
和QVector3D
(和QVector2D
)都具有以下功能:
QVariant QMatrix4x4::operator QVariant() const
是否有一种方法可以将
QVariant
的值作为QMatrix4x4
或QVector2D
获得? 上下文:
我正在使用Qt和OpenGL制作“游戏引擎”(这是尝试学习如何做的更多尝试)。而且我正在自动解析Shaders以查找制服,并创建QObject类以具有信号和插槽以这种方式更新制服。由于无法混合使用模板和Q_OBJECT,所以我认为我的统一资料夹类需要使用QVariants
预先感谢您的宝贵帮助。
最佳答案
假设v
是从QMatrix4x4创建的QVariant,那么QMatrix4x4 matrix = v.value<QMatrix4x4>();
是您所需要的;使用v.value<QVector3D>();
对QVector3D也是有效的。
有关更多信息:QVariant#value