C++ 从QTableView获取行数据
我在主窗口上有一个按钮,按下该按钮将打开一个对话框,在该对话框中我设置了一个QTableView,其中填充了从Oracle数据库接收的数据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(
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(..)