Qt: удалить элемент из QListWidget и с компьютера

Я хотел бы удалить элемент из QListWidget и с компьютера.

Я знаю, как удалить элемент с компьютера, используя:

listWidget->takeItem(listWidget->row(listWidget->currentItem()));

Но я не знаю, как удалить эти элементы с компьютера. Я добавляю его, используя такой путь:

listWidget->addItem(new QListWidgetItem(QIcon("\\..\\..\\...jpg"),"xxxxxxxx"));

Поэтому я думаю, что его можно удалить, если мы получим путь к элементу. Дело в том, что я не знаю, как получить путь к элементу. Я пробовал это:

QFileInfo info(listWidget->currentItem()->icon().name());
QString str= info.absoluteFilePath();

или это:

QFileInfo info(listWidget->currentItem()->text());
QString str= info.absoluteFilePath();

Но я получаю только путь к файлу имени «xxxxxxxx», выбранному при добавлении элемента. Этот путь находится в папке сборки "/.../...Desktop_Qt_5_2_0_MSVC2010_32bit_OpenGL-Debug".

Кто-нибудь знает, как удалить элемент с компьютера, пожалуйста?


person Jeanstackamort    schedule 10.02.2014    source источник
comment
Вам вообще нужен полный путь? Я имею в виду все имена файлов, которые вы поместили в свой QListWidget в текущую рабочую папку приложений. Я имею в виду простой каталог QDir; директор.удалить(имя файла); должно работать, если файл находится в текущей рабочей папке.   -  person drescherjm    schedule 10.02.2014
comment
Вы можете установить любые пользовательские данные (например, полный путь) к вашему элементу при его добавлении. И используйте его, когда вам нужно удалить реальный файл.   -  person Dmitry Sazonov    schedule 10.02.2014
comment
Спасибо за ваш ответ. К сожалению нет, файлы могут быть где угодно. Так что да, мне нужен полный путь. Мне нужен путь "\\..\\..\\...jpg", отправленный в строке listWidget->addItem(new QListWidgetItem(QIcon("\\..\\..\\...jpg"),"xxxxxxxx"));. Но я не знаю, может быть, есть другие решения.   -  person Jeanstackamort    schedule 10.02.2014
comment
Затем вам нужно сохранить полный путь в QListWidget. userData - это то, как вы это делаете.   -  person drescherjm    schedule 10.02.2014
comment
Или все файлы имеют значок, который находится в папке, содержащей файл? Таким образом, вы должны получить путь (с удаленным именем файла значка) значка и добавить к нему имя файла.   -  person drescherjm    schedule 10.02.2014
comment
Ок, спасибо, я сделал это! Также спасибо этому сообщению [stackoverflow.com/questions/7136818/   -  person Jeanstackamort    schedule 10.02.2014