我是否可以在QVariant中存储QPointer,例如QPointer<QTcpSocket>,然后从其中提取它?
我尝试过:
QObject *ob = new QObject();
QPointer<QObject> qp(ob);
QVariant qv(qp);但是我得到了一个错误- QVariant::QVariant(void*)' is private。
发布于 2019-06-26 23:04:23
经过进一步的研究,使用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
0x0https://stackoverflow.com/questions/56775872
复制相似问题