class Musicplayer :public QWidget
{
private:
QString musicName ;
QString musicPath ;
};
Musicplayer::Musicplayer()
{
musicDir.setPath("/home/apple/project/qt_music") ;
QStringList filter ;
filter << "*.wav" << "*.mp3" << "*.aiff" << "*.mod" ;
musicList = musicDir.entryList(filter, QDir::Files|QDir::NoSymLinks, QDir::Name) ;
musicName = musicList.at(0);
musicPath = musicDir.absolutePath() +"/"+ musicName ;
qDebug() << "musicPath = " << musicPath ; //结果:musicPath = "/home/apple/project/qt_music/808-clap.wav"
qDebug() << "musicName = " << musicName ; //结果:musicName = "808-clap.wav"
}
int Musicplayer::musicplay()
{
/*第一组数据及结果*/
const char *source = musicPath.toAscii().data();
qDebug() << "musicPath = " << musicPath ; //结果:musicPath = "/home/apple/project/qt_music/808-clap.wav"
qDebug("source = %s!", source); //结果:source = /home/apple/project/qt_music/808-clap.wav!
/*第二组数据及结果*/
QString current = "/home/apple/project/mix_player/qt1" ;
const char *dest = current.toAscii().data();
qDebug() << "current = " << current ; //结果:current = "/home/apple/project/mix_player/qt1"
qDebug("dest = %s!", dest); //结果(错,很鬼异):dest = hhom!
/*第三组数据及结果*/
const char *name = musicName.toAscii().data();
qDebug() << "musicName = " << musicName ; //结果:musicName = "808-clap.wav"
qDebug("name = %s!", name); //结果:name = 808-clap.wav!
}
这三组数据的位置发生改变,结果就不一样。
第一组总是对的,第二组无论放哪个数据,总是不对。第三组有时对有时不对。总之没有一次是全对的。
这是怎么回事呀?有人知道吗?