tldr :
我注意到QMatrix4x4QVector3D(和QVector2D)都具有以下功能:

QVariant QMatrix4x4::operator QVariant() const

是否有一种方法可以将QVariant的值作为QMatrix4x4QVector2D获得?

上下文:

我正在使用Qt和OpenGL制作“游戏引擎”(这是尝试学习如何做的更多尝试)。而且我正在自动解析Shaders以查找制服,并创建QObject类以具有信号和插槽以这种方式更新制服。由于无法混合使用模板和Q_OBJECT,所以我认为我的统一资料夹类需要使用QVariants

预先感谢您的宝贵帮助。

最佳答案

假设v是从QMatrix4x4创建的QVariant,那么QMatrix4x4 matrix = v.value<QMatrix4x4>();是您所需要的;使用v.value<QVector3D>();对QVector3D也是有效的。

有关更多信息:QVariant#value

10-04 21:15