我是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