Qt中的QThread线程的使用

目录

一:线程

 二:使用线程(同步操作)


一:线程

为实现解码与视频播放同步,引入线程的学习,多个过程的同时进行

testthread.h .cpp

#ifndef TESTTHREAD_H
#define TESTTHREAD_H

#include <QObject>
#include<QThread>

class testthread : public QThread
{
    Q_OBJECT
public:
    testthread();
    void run();
    virtual ~testthread();
    //定义停止的标志位
    bool m_stop;
};

#endif // TESTTHREAD_H
#include "testthread.h"
#include<QDebug>


testthread::testthread()
{
    //初始线程未启动
    this->m_stop = false;
}

void testthread::run()
{
    qDebug() << "线程开始";
    //线程运行中
    while(!m_stop)
    {
        //线程处理函数
        for(int i = 0; i < 1000; i++)
        {
            qDebug() << i ;
        }
        sleep(1000);
    }
    qDebug() << "线程结束";
}

testthread::~testthread()
{

}

 二:使用线程(同步操作)

1.开机动画线程同步进行

2.登录窗口显示线程同步进行

 

3.点击(某个)按钮线程同步进行

 

 

4.对于视频播放器,应该点击视频列表中某个项,对视频的播放暂停进行控制

    void videoWidgetShowSlot(QListWidgetItem*item);
    connect(videowinlist,SIGNAL(itemClicked(QListWidgetItem*)),this,SLOT(videoWidgetShowSlot(QListWidgetItem*)));
void IndexWin::videoWidgetShowSlot(QListWidgetItem *item)
{
    qDebug()<<item->text()<<"界面创建";
    //线程的创建
    testthread *t = new testthread;
    //线程的启动
    t->start();
}

猜你喜欢

转载自blog.csdn.net/m0_56051805/article/details/125051868