0

我试图让 QTcpServer 为每个连接启动一个单独的线程。有可用的示例代码可以做到这一点:http ://doc.qt.io/qt-5/qtnetwork-threadedfortuneserver-example.html

此代码通过继承 QThread 来工作。如果我基于该示例构建代码,我很快就会遇到“QObject:无法为位于不同线程中的父级创建子级”。警告。

Qt 的文档建议不要对 QThread 进行子类化,因为那是“做错了”:http ://blog.qt.io/blog/2010/06/17/youre-doing-it-wrong/

所以,我的问题是,如果 Qt 提供的示例代码直接违反了 Qt 推荐的做法,是否有正确方法的示例?到目前为止,我发现的任何示例都是 QThread 的子类。

4

1 回答 1

0

Qt 是一个正在开发的产品。而且,我似乎仍然认为继承 QThread 是合法的做法。它只是一种较旧的技术,因此旧示例使用它。

您的问题似乎是跨不同线程的 QObject(s) 的错误使用,而不是 QThread 子类化。首先尝试找到发出警告的代码。

于 2015-03-17T07:36:52.133 回答