我想我可能误解了 Qt 线程中的几个概念,
在我的窗口类中,它是从 QWidget 派生的:
class Widget
{
Q_OBJECT
public:
Widget::Widget (QObject *parent = 0) : QObject(parent)
{
moveToThread(&th); // still stuck
connect (&th, SIGNAL(started()), SLOT(doWork()));
th.start();
}
private:
QThread th;
private slots:
void doWork ()
{
// hmm, this stuck the UI
while (1)
{
qDebug() << "Sleeping";
}
};
};
永远的循环卡住了 UI,它不应该,因为它是由 QThread 调用的。谁能指出这段代码有什么问题?