我将从这个下方的
计算每个结果的新行QSqlQueryModel *model = new QSqlQueryModel();
model->setQuery("SELECT height,age from patients", DB->getDB());
model->setHeaderData(4,Qt::Horizontal,tr("height"));
model->setHeaderData(2,Qt::Horizontal,tr("age"));
ui->tableView->setModel(model);
ui->tableView->show();
as
ratio = height/age;
我能做到吗?如何?
谢谢你!
答案 0 :(得分:0)
你可以做到。
您可以访问QSqlQueryModel
中的项目,如:
QSqlRecord rec = model->record(row); // get the row you need
QVariant height = rec.field("height").value(); // or access it via index
QVariant age = rec.field("age").value();
double ratio = height.toDouble() / age.toDouble();
只需根据您的需要调整代码,并为其添加值检查。
欢呼声
答案 1 :(得分:0)
谢谢你的帮助......我这样做了:
QSqlQuery pyt(DB->getDB());
pyt.prepare("SELECT h,a from patients");
pyt.exec();
QStandardItemModel *model = new QStandardItemModel(0,3,this);
model->setHeaderData(0,Qt::Horizontal,tr("heigh"));
model->setHeaderData(1,Qt::Horizontal,tr("age"));
model->setHeaderData(2,Qt::Horizontal,tr("ratio"));
while (pyt.next())
{
QList<QStandardItem*> NewRow;
QString age = pyt.value(0).toString();
QStandardItem *newColumn = new QStandardItem(age);
NewRow.append(newColumn);
QString height = pyt.value(1).toString();
newColumn = new QStandardItem(height);
NewRow.append(newColumn);
newColumn = new QStandardItem(QVariant("MY RATIO"));
NewRow.append(newColumn);
model->appendRow(NewRow);
}
ui->tableView->setModel(model);
ui->tableView->show();