Qt启用工作线程来刷新界面中的问题记录

今天在写代码的时候,遇到了一个小问题,之前没注意到这个细节,今天发现了,把他记下来分享给大家。

是主线程中,启用了一个工作线程来刷新界面,通过工作线程发信号给主线程,主线程定义了槽函数来刷新界面。

因为编程习惯的问题,个人喜欢将信号和槽的连接,放到构造函数里。就是这个地方,导致了刷新问题。

因为工作线程的初始化,是在主线程中按钮点击之后初始化的,在构造函数之后,也就是在工作线程的信号和主线程的槽函数关联之后,导致工作线程发出的信号,主线程没收到。

这里要切记,工作线程相关的东西,一定要在工作线程初始化之后,再来做关联。

        m_rfcalThread = new RFCalWorkThread;
        connect(m_rfcalThread, &RFCalWorkThread::isDone, this, &RFCalWidget::receiveThreadIsDoneMessageSlot);
        connect(m_rfcalThread, &RFCalWorkThread::sendMessage,this, &RFCalWidget::receiveThreadMessageSlot);
        connect(m_rfcalThread, &RFCalWorkThread::isQuit, this, &RFCalWidget::quitThreadSlot);
        connect(m_rfcalThread, &RFCalWorkThread::isFinish, this, &RFCalWidget::finishedThreadSlot);
发布了33 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qiukapi/article/details/103592145