2011-08-21 12 views
9

いくつかのファイル名をQListWidgetに保存したい。私は完全なファイルパスを持つ必要がありますが、私は基本ファイル名を表示したいだけです。私はおそらく各項目のツールチップに完全なファイル名を格納することができたが、私はむしろリスト項目のツールチップを持っていないだろう。QListWidgetのすべての項目にユーザーデータを保存できますか?

答えて

17

各QListWidgetItemのデータを設定し、各QListWidgetItemからデータを取得することができます。 QListWidgetItem::setData()およびQListWidgetItem::data()を参照してください。データは異なるrolesに設定することができます。 「アプリケーション固有の目的に使用できる最初の役割」であるQt :: UserRoleを使用します。

このような何か試してみてください:

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

と:

QListWidgeItem* currentItem = listWidget->currentItem(); 
if (currentItem != 0) { 
    QVariant data = currentItem->data(Qt::UserRole); 
    QString fullFilePath = data.toString(); 
} 
関連する問題