QTableWidget 中的选定行列表
list of SelectedRows in QTableWidget
本文关键字:列表 QTableWidget 更新时间:2023-10-16
我从QTableWidget获取选定的行时遇到问题。我有这样的表:
[id] [ key ]
0 test
1 pass
我想获取每一行的键值。我尝试了QTableWidget->selectedIndexes((;但它说它受到保护,我无法访问它。当我尝试QTableWidget->SelectionModel->selectedIndexes时,我不知道如何遍历列表并获取键值。有谁知道更好的方法我该怎么做?问候。
我假设您将表格小部件的选择行为设置为选择行。
您可以随时访问任何项目视图/小部件的所谓"选择模型"。 QTableWidget
继承自 QAbstractItemView
,这使您可以访问此特殊模型。此模型可以将所选行作为QModelIndex
列表告诉您,然后可以告诉您该行。获得它们后,您可以访问表内容,在您的情况下,访问索引为 1(键列(的列中的文本。
static const KEY_COLUMN = 1;
QList<QString> selectedKeys;
QItemSelectionModel *selectionModel = ui->tableWidget->selectionModel();
foreach(QModelIndex index, selectionModel->selectedRows())
selectedIDs << ui->tableWidget->item(index->row(), KEY_COLUMN)->text();
因为你正在使用QTableWidget
,你可能想调用selectedItems()
。您的结果将基于您通过setSelectionBehavior()
设置选择行为的内容
当您有项目列表时,您可以专门获取第二列项目(如果尚未选择(:
QTableWigetItem *keyItem = table->item(anItem->row(), 1);
QString val = keyItem->text();
您可以使用
QSet
来获取所有选定的行。例:
const QList<QTableWidgetItem*> tableItems=widget->selectedItems();
QSet<int> uniqueRows;
for(const QTableWidgetItem *item: tableItems)
{
uniqueRows.insert(item->row());
}
相关文章:
- Pybind11:将元组列表从Python传递到C++
- 从链接列表c++中删除一个项目
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- C++如何通过用户输入删除列表元素
- 读取文件的最后一行并输入到链接列表时出错
- 复制列表初始化的隐式转换的等级是多少
- LNK2038、MSVS2017 MAGMA的原因列表
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 没有为自己的结构调用列表推回方法
- 使用简单类型列表实现的指数编译时间.为什么
- 一对向量构造函数:初始值设定项列表与显式构造
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- 通过for循环使用用户输入填充列表
- C++:如何使函数只返回作为列表一部分的字符串
- 概念中的cv限定符需要表达式参数列表
- 下面是我为检测链接列表中的循环而制作的代码
- 建议在运行时将带有类实例的列表从c++导入qml
- 如何维护资源管理器项目视图中当前可见的项目列表
- 在卡萨布兰卡形成编码参数的列表
- QTableWidget 中的选定行列表