나는 Qt는 새로운 해요. QTableWidget에 행 항목을 객체로 캐스팅하려고합니다.Qt : QTableRowItem을 Object로 변환하는 방법은 무엇입니까?
지금까지 내가 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를 처음 접했을 때,이 문제를 처리 할 때 훨씬 더 나은 접근 방식을 사용할 수 있습니다. 뭔가 명확하지 않은 경우 의견을 제기하여 문제를 해결할 수 있도록하십시오.
감사합니다! 나는 Inventory inventory = this-> inventories.at (rowIndex)를 시도했다. 그것은 나를 위해 일했습니다. – Binsoi