Qt C++ 读取可选框被打勾的treewidgetitem, 将其文本作为table widget表头输出
时间: 2024-01-09 18:04:12 浏览: 68
以下是一个示例代码,可以读取一个 `QTreeWidget` 中被勾选的 `QTreeWidgetItem`,并将其文本添加到 `QTableWidget` 的表头中。
```cpp
// 获取所有被勾选的 QTreeWidgetItem
QList<QTreeWidgetItem*> checkedItems;
for (int i = 0; i < treeWidget->topLevelItemCount(); i++) {
QTreeWidgetItem* item = treeWidget->topLevelItem(i);
if (item->checkState(0) == Qt::Checked) {
checkedItems.append(item);
}
}
// 创建表格头
tableWidget->setColumnCount(checkedItems.size());
for (int i = 0; i < checkedItems.size(); i++) {
tableWidget->setHorizontalHeaderItem(i, new QTableWidgetItem(checkedItems.at(i)->text(0)));
}
```
在这个代码中,我们首先遍历了 `QTreeWidget` 中的所有顶层项,并检查每个项是否被勾选。如果一个项被勾选了,我们就将它添加到一个 `QList` 中。接下来,我们创建了一个新的 `QTableWidget`,并设置它的列数为被勾选的项数。然后,我们遍历被勾选的项列表,将每个项的文本作为表头项添加到 `QTableWidget` 中。
请注意,这个示例代码假设 `QTreeWidget` 和 `QTableWidget` 已经被创建并正确初始化。
阅读全文