gpt4 book ai didi

c++ - QObject::moveToThread:小部件不能移动到新线程

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:34 24 4
gpt4 key购买 nike

我的IDE Qt 5.0.1,平台Linux

我对将小部件设置为窗口有疑问。(我的意见)

这是我的 main.cpp->

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

QThread cThread;

MainWindow w;

w.doSetup(cThread);
w.moveToThread(&cThread);

cThread.start();

if(cThread.isRunning())
{
qDebug() << " Thread is Running...";
}


w.show();

return a.exec();
}

这是 doSetup() 方法->

void MainWindow::doSetup(QThread &mainThread)
{
QObject::connect(&mainThread, &QThread::started, this, &MainWindow::activeLoopMainC);
}

我检查了我的信号槽机制,它工作正常。

槽法->

void MainWindow::activeLoopMainC()
{
qDebug() << " Signal-Slot structure working successfully..";
mainThreadProc((void*)(instAddr));
}

我通过这个插槽方法从我的 main.c 中调用一个函数。

在debug中工作代码没有问题。但是我的窗口是空白的。只有框架。

我收到一条错误消息:QObject::moveToThread:无法将小部件移动到新线程

我该如何解决这个问题?

预先感谢您的回答。

最佳答案

您不能将小部件移动到另一个线程中 - 为了保持用户界面响应,Qt 需要在主线程中完成所有 GUI 工作。

如果您有后台工作要做,则将后台工作程序移至其他线程,而不是用户界面。

关于c++ - QObject::moveToThread:小部件不能移动到新线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18254745/

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