void FormHistory::createOrderItem(const WeighWorkOrderSharedPtr &order) { int row = insertOrderRow(); setOrderColumn(row, ID, QString::number(order->id())); setOrderColumn(row, OrderNo, order->productionOrder()); setOrderColumn(row, GlueNo, order->glueWorkOrder()); setOrderColumn(row, ProductNo, order->matterCode()); setOrderColumn(row, TotalWeight, QString::number(order->weight())); setOrderColumn(row, Version, order->verison()); setOrderColumn(row, MatchineNo, order->machine()); setOrderColumn(row, OperatorName, order->operatorNo()); setOrderColumn(row, OrderStartTime, order->startWorkDateTime().toString("yyyy-MM-dd hh:mm:ss")); setOrderColumn(row, OrderEndTime, order->endWorkDateTime().toString("yyyy-MM-dd hh:mm:ss")); }点击iWidgetOrder的行获取当前行的id值
时间: 2023-06-16 07:02:17 浏览: 79
可以通过以下代码实现:
```c++
void FormHistory::on_iWidgetOrder_itemClicked(QTableWidgetItem *item)
{
int row = item->row();
QString id = ui->iWidgetOrder->item(row, ID)->text();
// 这里的 ID 是订单列表中 ID 列的列号,需要根据实际情况进行修改
// 处理获取到的 id 值
// ...
}
```
其中,`on_iWidgetOrder_itemClicked` 是 `iWidgetOrder` 的行点击事件,当用户点击某一行时,会触发该事件。在事件处理函数中,首先获取用户点击的行号 `row`,然后通过 `ui->iWidgetOrder->item(row, ID)->text()` 获取该行 ID 列的文本值,即为当前行的 id 值。
相关问题
void FormHistory::slot_OrderItemChanged(QTableWidgetItem *item) { int orderId = item->text().toInt();中如何获取到orderid
在这段代码中,我们可以通过以下两种方式获取到 `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 单元格的数据
```
阅读全文