#include "displaythread.h"
#include "mainwindow.h"
DisplayThread::DisplayThread(MainWindow *pWindow, QObject *parent) :
QThread(parent)
{
m_pWindow = pWindow;
}
void DisplayThread::run()
{
m_pWindow->display();
}
void MainWindow::on_pushButton_clicked()
{
DisplayThread *pThread = new DisplayThread(this);
pThread->start();
}
void MainWindow::display()
{
ui->label->setPixmap(QPixmap(":/images/button.jpg"));
}
在mainwindow类中创建一个Button,连接一个槽函数display,考虑到槽函数执行过程中别的功能的实现,将display移到新的线程下。DisneyThread继承了QThread并且将MainWindow类传入,重写线程的run()函数,在run()函数中调用display,这样就可以保证display执行的过程中,MainWindow的其他功能可以同时实现了。
第一次写博文,还是参照sourire_will的代码,十分感谢。