怎么在QT中对体重进行升序,其中对体重进行升序的选项是用的组合框,它在数据库中位于第六个,用这句话、代码证明选中ui->comboBox->currentText()== "体重升序"
时间: 2024-02-12 10:08:05 浏览: 63
以下是在 QT 中对体重进行升序的代码示例:
```cpp
// 连接数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("mydatabase.db");
if (!db.open()) {
qDebug() << "Failed to open database.";
return;
}
// 执行 SQL 语句,将体重升序排序
QSqlQuery query;
query.exec("SELECT * FROM mytable ORDER BY weight ASC");
// 在表格中显示结果
QStandardItemModel *model = new QStandardItemModel();
model->setColumnCount(6);
model->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));
model->setHeaderData(1, Qt::Horizontal, QObject::tr("Name"));
model->setHeaderData(2, Qt::Horizontal, QObject::tr("Age"));
model->setHeaderData(3, Qt::Horizontal, QObject::tr("Gender"));
model->setHeaderData(4, Qt::Horizontal, QObject::tr("Height"));
model->setHeaderData(5, Qt::Horizontal, QObject::tr("Weight"));
int row = 0;
while (query.next()) {
int id = query.value(0).toInt();
QString name = query.value(1).toString();
int age = query.value(2).toInt();
QString gender = query.value(3).toString();
int height = query.value(4).toInt();
int weight = query.value(5).toInt();
model->setItem(row, 0, new QStandardItem(QString::number(id)));
model->setItem(row, 1, new QStandardItem(name));
model->setItem(row, 2, new QStandardItem(QString::number(age)));
model->setItem(row, 3, new QStandardItem(gender));
model->setItem(row, 4, new QStandardItem(QString::number(height)));
model->setItem(row, 5, new QStandardItem(QString::number(weight)));
row++;
}
ui->tableView->setModel(model);
```
为了证明选中了 "体重升序" 这个选项,可以在代码中加入以下判断语句:
```cpp
if (ui->comboBox->currentText() == "体重升序") {
query.exec("SELECT * FROM mytable ORDER BY weight ASC");
} else {
query.exec("SELECT * FROM mytable ORDER BY height DESC");
}
```
这段代码的意思是,如果当前选中的是 "体重升序" 这个选项,就将 SQL 语句改成按体重升序排序,否则按身高降序排序。这样,就可以根据选中的选项来进行排序了。
阅读全文