2011-08-21 24 views
9

Tôi muốn lưu một số tên tập tin trong một QListWidget. Tôi cần phải có đường dẫn tập tin đầy đủ, nhưng tôi chỉ muốn hiển thị tên tập tin cơ sở. Tôi có lẽ có thể lưu trữ tên tập tin đầy đủ trong tooltip cho mỗi mục, nhưng tôi không muốn có chú giải công cụ cho các mục danh sách.Tôi có thể lưu trữ một số dữ liệu người dùng trong mọi mục của một QListWidget không?

Trả lời

17

Bạn có thể đặt dữ liệu và nhận dữ liệu từ mỗi QListWidgetItem. Xem QListWidgetItem::setData()QListWidgetItem::data(). Dữ liệu có thể được đặt cho roles khác nhau. Sử dụng Qt :: UserRole, đó là "Vai trò đầu tiên có thể được sử dụng cho mục đích ứng dụng cụ thể."

Hãy thử một cái gì đó như thế này:

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

và:

QListWidgeItem* currentItem = listWidget->currentItem(); 
if (currentItem != 0) { 
    QVariant data = currentItem->data(Qt::UserRole); 
    QString fullFilePath = data.toString(); 
} 
Các vấn đề liên quan