QTableWidget勾选某几行数据
时间: 2024-03-14 13:48:41 浏览: 17
要勾选 QTableWidget 中的某几行数据,可以按照以下步骤进行:
1. 在设计界面或代码中创建一个 QTableWidget 对象,例如:
QTableWidget *tableWidget = new QTableWidget(this);
2. 设置表格的行数和列数:
tableWidget->setRowCount(5); // 设置表格行数为 5
tableWidget->setColumnCount(3); // 设置表格列数为 3
3. 在代码中为表格添加数据,例如:
for (int row = 0; row < 5; ++row) {
for (int column = 0; column < 3; ++column) {
QTableWidgetItem *item = new QTableWidgetItem(QString("行 %1,列 %2").arg(row).arg(column));
tableWidget->setItem(row, column, item);
}
}
4. 设置表格的选择模式为行选择:
tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);
其中,setSelectionBehavior() 方法设置选择模式为行选择,setSelectionMode() 方法设置选择方式为多选。
5. 勾选某几行数据,可以通过代码设置单元格的选中状态。例如,勾选第 1 行和第 3 行数据:
tableWidget->item(0, 0)->setSelected(true); // 勾选第 1 行第 1 列
tableWidget->item(2, 0)->setSelected(true); // 勾选第 3 行第 1 列
6. 获取勾选的行数据,可以使用 selectedItems() 方法获取当前选中的所有单元格,然后根据行号去重得到选中的行号:
QList<QTableWidgetItem *> items = tableWidget->selectedItems();
QSet<int> selectedRows;
foreach (QTableWidgetItem *item, items) {
selectedRows.insert(item->row());
}
其中,QSet 是一个集合类,用于去重。最后得到的 selectedRows 集合就是勾选的行号集合。