2011-08-21 7 views
9

Quiero almacenar algunos nombres de archivos en un QListWidget. Necesito tener las rutas completas de archivo, pero solo quiero mostrar el nombre de archivo base. Probablemente podría almacenar el nombre de archivo completo en la información sobre herramientas para cada elemento, pero prefiero no tener información sobre herramientas para los elementos de la lista.¿Puedo almacenar algunos datos de usuario en cada elemento de un QListWidget?

Respuesta

17

Puede establecer datos y obtener datos de cada QListWidgetItem. Ver QListWidgetItem::setData() y QListWidgetItem::data(). Los datos se pueden establecer para diferentes roles. Use Qt :: UserRole, que es "El primer rol que se puede usar para fines específicos de la aplicación".

intentar algo como esto:

QListWidgetItem *newItem = new QListWidgetItem; 
QString fullFilePath("/home/username/file"); 
QVariant fullFilePathData(fullFilePath); 
newItem->setData(Qt::UserRole, fullFilePathData); 
newItem->setText(itemText); 
listWidget->insertItem(row, newItem); 

y:

QListWidgeItem* currentItem = listWidget->currentItem(); 
if (currentItem != 0) { 
    QVariant data = currentItem->data(Qt::UserRole); 
    QString fullFilePath = data.toString(); 
} 
Cuestiones relacionadas