从 QTableView 获取行数据

3
在我的C++ GUI应用程序中,使用Qt,我有一个按钮位于主窗口上,按下该按钮将打开一个对话框,在该对话框中,我设置了一个QTableView,它会从Oracle数据库接收到的数据进行填充。
QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
db.setHostName("....");
db.setDatabaseName("...");
db.setUserName("...");
db.setPassword("...");
db.setPort(1521);

if(db.open())
{
    qDebug()<<"OPEN SUCCESS";
}
else
{
    qDebug()<<"ERROR "<<db.lastError().text();
}

this->model_oracle=new QSqlQueryModel();
model_oracle->setQuery("select * from TEST_1");
ui->tableView->setModel(model_oracle);

下面显示了表格视图中的示例数据输出--

Name    Address    Age
Mike    NYC        25
Jim     FLA        39
Kate    SF         21

现在,当用户点击任何单元格时,我希望将该行的3个字段保存在3个字符串变量中。我将使用这3个字符串变量的值来填充我的主窗口表单中的数据。
有没有想法如何使用QTableView实现这一点?我可以使用cellClicked(int,int)信号来做到这一点,但是我无法在QTableView中找到类似的东西。
我在SO上看到了一个关于类似问题的question,但是当我尝试使用相同的方法(即逐个单元格)时,它仍然无法工作。
1个回答

2

试图连接 QAbstractItemView::clicked(QModelIndex) 信号,

connect(ui->tableView, SIGNAL(clicked(QModelIndex)),this, SLOT(GetField()));

这应该返回当前点击的项目。

一旦您获得了该项目,在GetField(QModelIndex index)槽中,您可以通过以下方式访问所选行:

row = index.row()

然后您应该能够使用以下方式访问您的字段

field = model_oracle->record(row)->field(..)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接