在基于QThread的类中,我有一个QWebPage,当loadFinished()时,我需要解析内容,它会卡住UI。所以我把所有东西放在一个线程中:
class Thread: public QThread
{
public:
Thread (QObject *p): QThread (p)
{
moveToThread (this);
connect (&page, SIGNAL(loadFinished(bool)), SLOT(loadFinished(bool)));
}
private slots:
void loadFinished (bool ok)
{
// never get called, unless I remove the `moveToThread(this)`
}
};
我也尝试将QWebPage的事件移动到这个基于qthread的类,我得到了错误,似乎你无法将事件移动到新的线程。
关于它的任何想法?
答案 0 :(得分:0)
不幸的是,无法在与主GUI线程不同的线程上创建Qt GUI元素。如果您正在尝试补偿由于QWebPage中的资源加载导致的GUI减速,我完全理解您的思考过程。我已经彻底调查了这个问题,但还没有找到答案。
据报道,Windows中代理查找的错误需要很长时间:https://bugreports.qt-project.org/browse/QTBUG-10106此错误目前尚未解决,但未来可能会有解决方案。