if(ui->comboBox->currentText()=="年龄升序") { ui->zyh_tableView_information->sortByColumn(3,Qt::AscendingOrder);//第3列 ui->zyh_tableView_information->setSortingEnabled(true); }改排序
时间: 2024-02-12 15:09:40 浏览: 136
如果你想让这段代码按照其他列进行排序,只需要将 `sortByColumn()` 函数中的第一个参数修改为你想要排序的列的索引即可。比如,如果你想按照第二列进行排序,可以将代码修改为:
```cpp
if(ui->comboBox->currentText() == "年龄升序") {
ui->zyh_tableView_information->sortByColumn(2, Qt::AscendingOrder); // 第二列
ui->zyh_tableView_information->setSortingEnabled(true);
}
```
如果你想按照降序排序,可以将 `sortByColumn()` 函数的第二个参数改为 `Qt::DescendingOrder`。比如,如果你想按照第二列进行降序排序,可以将代码修改为:
```cpp
if(ui->comboBox->currentText() == "年龄降序") {
ui->zyh_tableView_information->sortByColumn(2, Qt::DescendingOrder); // 第二列
ui->zyh_tableView_information->setSortingEnabled(true);
}
```
需要注意的是,这里的列索引是从 0 开始的,因此如果你要按照第二列排序,实际上应该传入 1 而不是 2。
相关问题
请在这个代码的基础上帮我修改,以此来实现升降序排列,void yyw_student_information::on_comboBox_currentIndexChanged(const QString &arg1) { if(ui->comboBox->currentText()=="年龄升序") { yyw_model_information->setSort(3,Qt::AscendingOrder); yyw_model_information->select(); } else if (ui->comboBox->currentText()== "年龄降序") { yyw_model_information->setSort(3,Qt::DescendingOrder); yyw_model_information->select(); } else if (ui->comboBox->currentText()== "身高升序") { yyw_model_information->setSort(5,Qt::AscendingOrder); yyw_model_information->select(); } else if (ui->comboBox->currentText()== "身高降序") { yyw_model_information->setSort(5,Qt::DescendingOrder); yyw_model_information->select(); } else if (ui->comboBox->currentText()== "体重升序") { yyw_model_information->setSort(6,Qt::AscendingOrder); yyw_model_information->select(); } else if (ui->comboBox->currentText()== "体重降序") { yyw_model_information->setSort(6,Qt::DescendingOrder); yyw_model_information->select(); } }
您可以按照以下方式修改代码来实现升降序排列:
```cpp
void yyw_student_information::on_comboBox_currentIndexChanged(const QString &arg1)
{
if (arg1 == "年龄升序") {
yyw_model_information->sort(3, Qt::AscendingOrder);
} else if (arg1 == "年龄降序") {
yyw_model_information->sort(3, Qt::DescendingOrder);
} else if (arg1 == "身高升序") {
yyw_model_information->sort(5, Qt::AscendingOrder);
} else if (arg1 == "身高降序") {
yyw_model_information->sort(5, Qt::DescendingOrder);
} else if (arg1 == "体重升序") {
yyw_model_information->sort(6, Qt::AscendingOrder);
} else if (arg1 == "体重降序") {
yyw_model_information->sort(6, Qt::DescendingOrder);
}
}
```
在这个修改后的代码中,我们使用了`sort`函数来对数据进行排序。`sort`函数接受两个参数:排序列的索引和排序方式(升序或降序)。当用户选择不同的排序选项时,我们根据所选项的不同来调用不同的`sort`函数,从而实现对数据的升降序排列。
QString path=QCoreApplication::applicationDirPath() + "/Database/parts/a.json"; DSstruct_parts=mJsonFile.readJson_Display(path); QIcon icon; //清除列表 ui->comboBox->clear(); ui->comboBox->setView(new QListView()); for (int i=0;i<DSstruct_parts.size();i++) { icon.addFile(DSstruct_parts[i].jpg_path); ui->comboBox->setIconSize(QSize(80, 80)); //添加一个字符串 ui->comboBox->addItem(icon,DSstruct_parts[i].key); } ui->comboBox->setCurrentIndex(-1);将这段代码的combobox换成lineedit
将代码修改为:
```
QString path = QCoreApplication::applicationDirPath() + "/Database/parts/a.json";
DSstruct_parts = mJsonFile.readJson_Display(path);
QIcon icon;
ui->lineEdit->clear(); // 清除文本框内容
for (int i = 0; i < DSstruct_parts.size(); i++)
{
icon.addFile(DSstruct_parts[i].jpg_path);
ui->lineEdit->addAction(QIcon(icon), DSstruct_parts[i].key); // 添加一个动作
}
```
注意,这里使用了 `QLineEdit::addAction` 函数来添加动作,而不是 `QLineEdit::setText` 函数设置文本。因为 `QLineEdit` 控件不支持在文本中添加图标,只能通过添加动作的方式实现类似的效果。
阅读全文