我遇到了一个问题: 我的任务是从SQL数据库中获取一些数据(例如,SELECT ID,名称,来自用户的last_name);
然后我要在QTableView中显示此数据:
QSqlQueryModel *model = database->fetchAll(SELECT id, name, last_name FROM users);
QTableView *tableView = new QTableView();
tableView->setModel(model);
tableView->hideRow(0); // hide id
const QModelIndex selectedRowModel = tableView->selectionModel()->selectedRows()[0]; // i will get 'name', because 'id' is hidden
如何获取当前所选行的ID?
答案 0 :(得分:0)
嗯,我遇到了同样的问题,并使用以下方法解决了这个问题:
QSqlQueryModel *model = database->fetchAll(SELECT id, name, last_name FROM users);
QTableView *tableView = new QTableView();
tableView->setModel(model);
tableView->hideRow(0);
tableView->showRow(0); //use showRow() everytime you need the value.
const QModelIndex selectedRowModel = tableView->selectionModel()->selectedRows()[0];
tableView->hideRow(0);
显示/隐藏操作是如此之快,以至于您看不到它的发生。
我认为这不是解决问题的绝妙方法,但至少我可以从中获取价值。