2

我有个问题。我有一个有 2 个按钮的 Qiwidget。按一个按钮时,我需要使用某种播放技术播放 1 个文件。单击另一个按钮时,我想播放另一个文件。我使用 2 个文件的播放作为线程来制作类。但是当我尝试按下第一个按钮时,我的应用程序卡住了,我无法按下第二个按钮。它被阻止直到我的播放结束。

无论播放的文件如何,我都希望能够使用我的主应用程序。我怎样才能在 Qt 中实现这一点。

播放文件 1.h..

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

播放文件.cpp

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

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

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

}

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

4

1 回答 1

4

你应该打电话

playSource1->start();

不是run()请参阅Qt 使用 QThread 启动线程文档中的“启动线程”部分。

于 2011-06-22T15:49:55.500 回答