Bazı dosya adlarını bir QListWidget içine kaydetmek istiyorum. Tam dosya yollarına sahip olmalıyım, ama sadece temel dosya adını göstermek istiyorum. Her dosya için araç dosyasında tam dosya adını saklayabilirim, ancak liste öğeleri için araç ipuçlarını kullanmamayı tercih ederim.Bazı kullanıcı verilerini bir QListWidget öğesinin her bir öğesinde saklayabilir miyim?
9
A
cevap
17
Sen verilerini ayarlayabilir ve her QListWidgetItem veri alabilir. QListWidgetItem::setData() ve QListWidgetItem::data()'a bakın. Veri farklı roles için ayarlanabilir. "Uygulamaya özel amaçlar için kullanılabilecek ilk rol" olan Qt :: UserRole'u kullanın. Böyle
deneyin şey:
QListWidgetItem *newItem = new QListWidgetItem;
QString fullFilePath("/home/username/file");
QVariant fullFilePathData(fullFilePath);
newItem->setData(Qt::UserRole, fullFilePathData);
newItem->setText(itemText);
listWidget->insertItem(row, newItem);
ve:
QListWidgeItem* currentItem = listWidget->currentItem();
if (currentItem != 0) {
QVariant data = currentItem->data(Qt::UserRole);
QString fullFilePath = data.toString();
}