我可以在QPointer
内存储QPointer<QTcpSocket>
,例如QVariant
,然后从中提取吗?
我尝试过:
QObject *ob = new QObject();
QPointer<QObject> qp(ob);
QVariant qv(qp);
但是我遇到了错误-QVariant::QVariant(void*)' is private
。
答案 0 :(得分:0)
经过更多研究,可以使用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