gpt4 book ai didi

c++ - 确保使用 qRegisterMetaType() 注册了 'QAbstractSocket::SocketState'

转载 作者:行者123 更新时间:2023-11-30 01:16:47 32 4
gpt4 key购买 nike

我试图将 QWebSocket 连接放入 QThread

QThread *thread = new QThread;



connect(&websocket,&QWebSocket::connected,this,&Widget::onWsConnect);

websocket.moveToThread(thread);
connect(thread, &QThread::finished, &websocket, &QObject::deleteLater);
websocket.open(wsUrl);

thread->start();

程序编译没有错误,运行正常,但是当它试图连接到websocket服务器时抛出这个错误:

QObject::connect: Cannot queue arguments of type 'QAbstractSocket::SocketState' (Make sure 'QAbstractSocket::SocketState' is registered using qRegisterMetaType().)

当我做的时候

websocket.open(wsUrl);

没有线程连接工作正常。

有什么想法吗?

最佳答案

如果你想通过排队的信号/槽连接发送你的对象,你应该使用qRegisterMetaType<T>() .只需在构造函数中某处打开套接字之前调用它即可:

qRegisterMetaType<QAbstractSocket::SocketState>();

关于c++ - 确保使用 qRegisterMetaType() 注册了 'QAbstractSocket::SocketState',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25856216/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com