在QT中,如何从UI中的tableWidget中提取第一列LineEdit的数据并将其存储为QString,同时获取第二列ComboBox的索引并将这些索引添加到QStringList中?
时间: 2024-10-19 15:15:54 浏览: 28
在Qt中,你可以通过以下步骤从UI中的`QTableWidget`中提取数据:
1. 首先,你需要获取`QTableWidget`的对象,假设它的名称是`tableWidget`,并且列数已知。
```cpp
QTableWidget *table = findChild<QTableWidget*>("tableWidget");
```
2. 对于每一行,你可以遍历`QTableWidget`的每一项,并获取第一列的`QTableWidgetItem`,它对应于`QLineEdit`,然后获取其文本作为`QString`。这里我们假设第一列在0索引位置:
```cpp
for (int row = 0; row < table->rowCount(); ++row) {
QTableWidgetItem *item = table->item(row, 0);
if (item && item->isEditable()) { // 确保是可编辑的QLineEdit
QString firstColumnData = item->text();
// 存储数据
}
}
```
3. 同样,对于第二列的`QComboBox`,需要获取对应的索引。假设第二列在1索引位置:
```cpp
for (int row = 0; row < table->rowCount(); ++row) {
QComboBox *comboBox = qobject_cast<QComboBox*>(table->cellWidget(row, 1)); // 获取QComboBox
if (comboBox) {
int comboBoxIndex = comboBox->currentIndex(); // 获取当前选中的索引
QStringList indexes;
indexes << QString::number(comboBoxIndex); // 添加到QStringList中
// 存储或处理indexes
}
}
```
记得替换`"tableWidget"`为你实际的控件ID。如果你需要将所有数据组合在一起,可以在循环外创建一个全局的`QStringList`来存储所有第一列的数据和对应第二列的索引列表。
阅读全文