sas*_*alm 13 c++ qt qlistwidget
我想在QListWidget中存储一些文件名.我需要有完整的文件路径,但我只想显示基本文件名.我可能会在每个项目的工具提示中存储完整的文件名,但我宁愿没有列表项的工具提示.
Bil*_*ill 25
您可以为每个QListWidgetItem设置数据并从中获取数据.请参阅QListWidgetItem :: setData()和QListWidgetItem :: data().可以为不同的角色设置数据.使用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);
Run Code Online (Sandbox Code Playgroud)
和:
QListWidgeItem* currentItem = listWidget->currentItem();
if (currentItem != 0) {
QVariant data = currentItem->data(Qt::UserRole);
QString fullFilePath = data.toString();
}
Run Code Online (Sandbox Code Playgroud)
这是它在 Python (PyQt5) 中的样子:
from PyQt5 import QtCore, QtWidgets
# Creates a QListWidgetItem
item_to_add = QtWidgets.QListWidgetItem()
# Setting your QListWidgetItem Text
item_to_add.setText('String to Display')
# Setting your QListWidgetItem Data
item_to_add.setData(QtCore.Qt.UserRole, YOUR_DATA)
# Add the new rule to the QListWidget
YOUR_QListWidget.addItem(item_to_add)
Run Code Online (Sandbox Code Playgroud)
检索数据:
# Looping through items
for item_index in range(YOUR_QListWidget.count()):
# Getting the data embedded in each item from the listWidget
item_data = YOUR_QListWidget.item(item_index).data(QtCore.Qt.UserRole)
# Getting the datatext of each item from the listWidget
item_text = YOUR_QListWidget.item(item_index).text()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11222 次 |
| 最近记录: |