QSound在if语句中不起作用

时间:2014-03-03 02:46:23

标签: qt qt5

这不起作用:

QString directory  = "";

int main(int argc, char *argv[])
{   
    QString boo = getDir();

    if(!boo.isEmpty()) {

       directory = boo;

       QSound s1(directory);
       QApplication a(argc, argv);
       MainWindow w;
       s1.play();
      // MainWindow shows fine but QSound doesnt work at all
    } else {
        //somethingelse
    }
}

但这很好用。

QString directory  = "";

int main(int argc, char *argv[])
{
    QString boo = getDir();

    if(!boo.isEmpty()) {

        directory = boo;

        QApplication a(argc, argv);
        MainWindow w;


    } else {
        //somethingelse
    }

    QSound s1(directory);
    s1.play();
}

问题是 - 我的第一个例子出了什么问题?我不知道说实话。

我尝试了很多次但仍然无效。我该怎么做才能解决它?

1 个答案:

答案 0 :(得分:1)

问题很简单,你的QSound实例超出范围并在“then”块结束时被破坏,并且在你听到任何声音之前声音停止播放。

将定义移出“then”块之前。然后开始在“then”块开始播放。