1
我已经写了一个小小的游戏线程来播放Qt中的声音。 代码如下:Qt:如何正确使用QSound的播放插槽?
Worker::Worker(QObject *parent) :
QObject(parent)
{
sound = new QSound("C:/Qt/Tools/QtCreator/bin/warning_sound/alert.wav");
sound->setLoops(10);
}
Worker::~Worker(){
delete sound;
}
void Worker::process()
{
sound->play();
}
过程SLOT将触发一些别的地方。 但是,它可能会被触发多次。我想有效果是:
无论多少次的SLOT已被触发,一旦不再触发更多,声音将只出场10次。
一旦SLOT被触发并在播放声音时,即使接收到信号,SLOT也不会再被触发。
我怎么能做到这一点?
谢谢您的回答,但我想是不是让程序只能触发一次。我只希望声音还在播放时,SLOT的过程不会被触发。 – Nyaruko 2014-10-30 18:32:21
@Nyaruko请参阅我的编辑。 – Chernobyl 2014-10-30 18:37:22
谢谢...我会更仔细地阅读文档,我没有注意到有什么叫做isFinished()... – Nyaruko 2014-10-30 18:39:55