void FormHistory::slot_OrderItemChanged(QTableWidgetItem *item) { int orderId = item->text().toInt();中如何获取到orderid
时间: 2023-06-14 13:06:03 浏览: 56
在这段代码中,我们可以通过以下两种方式获取到 `orderId`:
1. 使用 `QTableWidgetItem` 的 `row()` 方法获取当前行数,再根据行数获取该行数据中 `orderId` 所在列的 `QTableWidgetItem`,最后通过 `text()` 方法获取该单元格的文本内容,即为 `orderId`。
```cpp
void FormHistory::slot_OrderItemChanged(QTableWidgetItem *item) {
int row = item->row(); // 当前行数
QTableWidgetItem *orderIdItem = ui->tableWidget->item(row, 0); // 获取 orderId 所在单元格
int orderId = orderIdItem->text().toInt(); // 获取 orderId
// ...
}
```
2. 直接获取所选单元格所在行的数据,并从中获取 `orderId`。
```cpp
void FormHistory::slot_OrderItemChanged(QTableWidgetItem *item) {
int row = item->row(); // 当前行数
QTableWidgetItem *selectedItem = ui->tableWidget->item(row, 0); // 获取所选单元格
QTableWidgetItem *orderIdItem = ui->tableWidget->item(row, 0); // 获取 orderId 所在单元格
int orderId = selectedItem->data(Qt::UserRole).toInt(); // 获取所选单元格所在行的数据
// ...
}
```
其中,第二种方式需要在设置表格数据时,将 `orderId` 存储到单元格的 `Qt::UserRole` 数据中,例如:
```cpp
QTableWidgetItem *orderIdItem = new QTableWidgetItem(QString::number(orderId));
orderIdItem->setData(Qt::UserRole, orderId); // 存储 orderId 到 Qt::UserRole 数据中
ui->tableWidget->setItem(row, 0, orderIdItem); // 设置 orderId 单元格的数据
```