大家好,我正在用QT写一个MP3播放的东东。
我把文件夹下保存的MP3文件全部显示在 QListWidget中。今天我打算实现通过这个控件控制播放哪首歌,想法如下:
1。按下播放键后,播放当前选中的歌曲
我开始不知道怎么实现,网上找资料怎么得到控件当前选中项的文本也没找到答案,不过后被我给蒙对了:
ui->namelistWidget->currentItem()->text(); 这样就行了。
2。按下下一首,上一首键后,找到当前选中项的上一首和下一首,播放它
这就是我的问题了,怎么找到当前选中项的下一首和上一首呢?难道要像单向链表一样做一次遍历才行吗?是否有简单的函数调用能直接得到结果的?
3。用户双击链表,则播放对应的歌。
这个好实现的。
所以我的问题是怎么实现 2?
其实我想过,把所有歌同时放在一个双向链表中,这样查找歌会方便很多。但是我想如果可以只通过这个控件解决,那不是更好吗?
有点急的,恳请路过的大大指点一下!
------解决方案--------------------
2。按下下一首,上一首键后,找到当前选中项的上一首和下一首,播放它
这就是我的问题了,怎么找到当前选中项的下一首和上一首呢?难道要像单向链表一样做一次遍历才行吗?是否有简单的函数调用能直接得到结果的?
int row = currentRow ();
if (row == 0) //第一首
{
row = count()-1;//移动到最后一首
}
else if(row == count()-1)//最后一首
{
row = 0; //移动到第一首
}
else
{
row--;
}
QListWidgetItem * QListWidget::item ( int row ) const