繁体   English   中英

将QPointer存储到QVariant中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM