我是Qt的新手。我想在QTableWidget中将行项目转换为对象。Qt:如何将QTableRowItem转换为对象?
到目前为止,我已经管理与QList作填充QTableWidget的:
header.h
QList<Inventory> inventories;
int row = 0;
int rowCount = ui->tableItems->rowCount();
ui->tableItems->insertRow(rowCount);
foreach(Inventory inventory, this->inventories)
{
QTableWidgetItem *code = new QTableWidgetItem(inventory.getName());
QTableWidgetItem *name = new QTableWidgetItem(inventory.getCode());
QTableWidgetItem *price = new QTableWidgetItem(GlobalFunctions::doubleToMoney(this, inventory.getPrice()));
ui->tableItems->setItem(row,0,code);
ui->tableItems->setItem(row,1,name);
ui->tableItems->setItem(row,2,price);
row++;
}
void CreateSalesWindow::removeItem()
{
qDebug() << "Remove Item" << ui->tableItems->currentIndex().column();
this->salesdetails.removeAt(ui->tableItems->currentIndex().column() - 1);
this->refreshItemList();
}
我设法得到选定行,有投行我回对象一个简单的方法。我来自C#.Net背景,我可以很容易地将其转换回像这样的东西(只是一个例子)。我在SO和文档中找不到任何好的解决方案。
Inventory selectedInventory = (Inventory) ui->tableItems->selectedItem().getValue();
qDebug() << selectedInventory.getPrice();
// 1699.75
PS。我也想从表中选定的行中删除QList <>中的一个项目。
谢谢!我对Qt很陌生,在处理这个问题上我有更好的方法。如果有什么不清楚的地方,请发表评论,以便我能纠正它。
谢谢!我试过库存库存= this-> inventories.at(rowIndex);它为我工作。 – Binsoi