Running Threads Simultanously using Qt

Running Threads Simultanously using Qt

本文关键字:Qt using Simultanously Threads Running      更新时间:2023-10-16

我有个问题。我有一个Qiwidget,它有两个按钮。按下一个按钮,我需要使用一些播放技术播放1个文件。单击其他按钮后,我想播放另一个文件。我使用这两个文件的回放作为线程来制作这些类。但是当我尝试按下第一个按钮时,我的应用程序被卡住了,我无法按下第二个按钮。它会被屏蔽,直到我的播放结束。

我希望能够使用我的主应用程序,而不考虑播放的文件。我怎样才能在Qt中做到这一点。

播放文件1.h.

class PlaySource1 : public QThread
{
public:
    PlaySource1();
    virtual void run();
};

playbackfile.cpp

PlaySource1::PlaySource1()
{
}
void PlaySource1::run()
{
some code
}

现在在我的主文件.cpp中,当我运行以下代码时:

void Test::on_pbPlaySource1_clicked()
{
    PlaySource1 *playSource1 = new PlaySource1;
    playSource1->run();
}

我的代码被线程播放阻塞了。但是我不希望它被阻塞。请帮忙。

您应该调用

playSource1->start();

而不是CCD_ 1。请参阅Qt Starting Threads with QThread文档中的"启动线程"部分。