QT C++ Framework QlistwidgetItem CONVERSION

QT C++ Framework QlistwidgetItem CONVERSION

本文关键字:CONVERSION QlistwidgetItem Framework C++ QT      更新时间:2023-10-16

我有一个列表,你可以自己用QfileDialog填充它,并将选定的文件放在一个小部件列表中。

我可以访问列表并为所有这些项目着色并做任何我想做的事情,除了这个问题:

我想从列表中选择一个项目并将其以某种方式转换为QStringList以便我可以将其用作Phonon MediaSource。

我不知道如何提取这个项目,我希望ListWidget中显示的文本并将其放在我的mediaObj中,以便我可以播放它。

这是我的一些代码:

我如何打开文件对话框(工作):

 QStringList fileNames;
QFileDialog fDialog(this);
fDialog.setFileMode(QFileDialog::AnyFile);
fDialog.setNameFilter(tr("Music(*.mp3)"));
fDialog.setViewMode(QFileDialog::Detail);
while (true) {
    if (fDialog.exec()) {
        fileNames = fDialog.selectedFiles();
        widget.list->addItems(fileNames);
        musicObj->enqueue(fileNames.last());
    } else {
        break;
    }
}

我如何访问列表中单击的一个项目:

 QListWidgetItem *list_itm = widget.list->currentItem();
 list_itm->setTextColor(Qt::red);

但是我可以提取光标位置上显示的字符串。

QListWidgetItem *list_itm = widget.list->currentItem();
list_itm->setTextColor(Qt::red);
QStringList list;
list << list_itm.text();

除非我误解了,否则您只需要一个包含单个项目的QStringList,即当前小部件项目。