我有问题。我有一个有两个按钮的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();
}
线程播放阻止了我的代码。但我不希望它被阻止。请帮忙。
答案 0 :(得分:4)
答案 1 :(得分:0)
尝试将exec()添加到run()函数的末尾,并查看moveToThread()的sbj Qt moveToThread() vs calling new thread when do we use each。可能它会帮助你。