[英]Store QPointer into a QVariant
我可以在QVariant
存储QPointer
,例如QPointer<QTcpSocket>
,然后从中提取它吗?
我尝试过:
QObject *ob = new QObject();
QPointer<QObject> qp(ob);
QVariant qv(qp);
但是我遇到一个错误QVariant::QVariant(void*)' is private
。
经过更多研究后,可以使用QVariant::fromValue()
和QVariant::value()
。
示例代码:
QTcpSocket *ob = new QTcpSocket();
qDebug("%p", ob);
QPointer<QTcpSocket> qp(ob);
QVariant qv = QVariant::fromValue(qp);
qp = qv.value<QPointer<QTcpSocket> >();
qDebug("%p", qp.data());
delete ob;
qDebug("%p", qp.data());
这给出:
0x137c070
0x137c070
0x0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.