利用QT的QThread将一个类中的成员函数转到线程下执行

#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的代码,十分感谢。

发布了9 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/bukajiushang/article/details/70207880