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