Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从QTableView获取行数据_C++_Qt4_Qtableview - Fatal编程技术网

C++ 从QTableView获取行数据

C++ 从QTableView获取行数据,c++,qt4,qtableview,C++,Qt4,Qtableview,我在主窗口上有一个按钮,按下该按钮将打开一个对话框,在该对话框中我设置了一个QTableView,其中填充了从Oracle数据库接收的数据 QSqlDatabase db = QSqlDatabase::addDatabase("QOCI"); db.setHostName("...."); db.setDatabaseName("..."); db.setUserName("..."); db.setPassword("..."); db.setPort(1521); if(db.open(

我在主窗口上有一个按钮,按下该按钮将打开一个对话框,在该对话框中我设置了一个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);
现在,当用户单击任何单元格时,我希望该行的3个字段保存在3个字符串变量中。这3个字符串变量值是我用来填充主窗口表单中的数据的

任何关于如何使用
QTableWidget
结构实现这一点的想法,我都可以通过
cellClicked(int,int)
信号来实现。但我在QTableView中找不到类似的东西


我在中看到了一个,因此解决了一些类似的问题,但当我尝试使用相同的(即单元格)时,它仍然不起作用。

尝试连接
qabstractemview::clicked(QModelIndex)
信号

connect(ui->tableView, SIGNAL(clicked(QModelIndex)),this, SLOT(GetField()));
它将返回当前单击的项目

拥有该项后,在插槽
GetField(QModeilIndex索引)
中,您可以使用以下内容访问所选行:

row = index.row()
然后你就可以用

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