要按照 “mm” 之前的数字从小到大排序并显示在 QTreeWidgetItem 上,可以采用以下方法:
// 获取当前选择的树节点
QTreeWidgetItem* currentItem = this->ui->treeWidget->currentItem();
if (currentItem) {
// 创建新的子节点
QTreeWidgetItem* childItem = new QTreeWidgetItem();
// 子项名称
QString itemName = "5.50mm-0.008Hz.csv"; // 假设第一次添加的子项名称
// 提取数字部分并转换为浮点数进行排序
double number = itemName.split("mm")[0].toDouble();
// 设置子项文本
childItem->setText(0, itemName);
// 添加子项到当前节点
currentItem->addChild(childItem);
// 对当前节点的所有子项进行排序
for (int i = 0; i < currentItem->childCount(); ++i) {
for (int j = i + 1; j < currentItem->childCount(); ++j) {
double num1 = currentItem->child(i)->text(0).split("mm")[0].toDouble();
double num2 = currentItem->child(j)->text(0).split("mm")[0].toDouble();
if (num1 > num2) {
currentItem->insertChild(i, currentItem->takeChild(j));
}
}
}
}
你可以在每次添加子项时使用上述代码,并将正确的子项名称赋值给 itemName
变量。这样,它会根据 “mm” 前面的数字进行从小到大排序,并将结果显示在 QTreeWidgetItem 上。
内容由零声教学AI助手提供,问题来源于学员提问