Qt 4.5-如何使用模板类型执行排队连接?

Qt 4.5-如何使用模板类型执行排队连接?,qt,qt4,Qt,Qt4,我正在尝试使用排队连接与std::vector&进行连接 connect(this, SIGNAL(process(QVector<FrameData*>&)), this, SLOT(beginProcess(QVector<FrameData*>&), Qt::ConnectionType::QueuedConnection); connect(这个,信号(进程(QVector&)), 这个,SLO

我正在尝试使用排队连接与
std::vector&
进行连接

   connect(this, SIGNAL(process(QVector<FrameData*>&)), 
           this, SLOT(beginProcess(QVector<FrameData*>&),
           Qt::ConnectionType::QueuedConnection);
connect(这个,信号(进程(QVector&)),
这个,SLOT(beginProcess(QVector&)),
Qt::ConnectionType::QueuedConnection);
我应该为
QRegisterMetaType
传递哪些参数才能工作

提前感谢!

std::vector还是QVector? 想必以下方法应该有效


int type=qRegisterMetaType(“QVector”);

不能在信号和插槽中使用非常量引用


编辑:…当使用排队连接时。

使用std::vector可以吗?根据api文档,“任何具有公共构造函数、公共副本构造函数和公共析构函数的类或结构都可以注册”,我认为使用QVector可能更容易,但也应该使用std::vector你确定吗?据我所知,这只适用于排队连接和非内置类型。你说得对,你可以在直接连接中使用它们。编辑了我的答案。你不能在排队连接中使用它们,无论它们是注册的元类型还是“内置类型”。排队连接生成信号参数的副本,这对于引用来说是不明智的。