QT:子线程更新UI
问题描述:Qthread的一般思路是,主线程负责提供界面,子线程负责无UI的单一任务,通过“信号-槽”与主线程交互。有的子线程实现需要更新界面。
解决方法:
首先在子进程的类中定一个更新UI的信号
task.h
signals:
void updateUI();
task.cpp
在子进程实现的函数中发出信号
emit updateUI();
在mainwindow.h中声明一个函数
public:
void setcontent();
mainwindow.cpp:
函数内容:在lineEdit中写入emo
void MainWindow::setcontent(){
ui->lineEdit->setText("emo");
}
将信号和槽进行连接
m是task类声明的对象
connect(m,&task::updateUI,this,&MainWindow::setcontent);
这样就可以啦,记录一下今天关于QThread学到的新知识