7 qt qt4 qtableview qtsql
我正在使用QTableView和QSqlTableModel.在我看来,我不显示包含记录ID的列.如果未在任何列中显示,则如何获取所选行的ID?
感谢帮助 :)
你也可以直接从QSqlQueryModel中检索id,但我不确定它是否比soulSurfer提出的更方便.
使用QModelIndex了所需的行:
QSqlQueryModel *model = tableView->model();
QSqlRecord record= model->record(desiredIndex->row());
QSqlField field = record.field(id_column_index);
int id = field.value().toInt();
Run Code Online (Sandbox Code Playgroud)
嗯...一种方法是从模型中获取ID并将其隐藏在视图中
void QTableView::setColumnHidden (int column, bool hide)
Run Code Online (Sandbox Code Playgroud)
然后你基本上得到它,但隐藏它,从这里,您可以通过使用从中发出的索引直接从模型中轻松获取它
void QAbstractItemView::activated ( const QModelIndex & index )
Run Code Online (Sandbox Code Playgroud)
信号.