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

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值