代码之家  ›  专栏  ›  技术社区  ›  esac

如何设置目录分隔符以匹配操作系统?

  •  2
  • esac  · 技术社区  · 14 年前

    我正在写一个qt应用程序,目标是它可以移植到3个主要的操作系统上。

    我使用QFileDialog选择一个文件夹,然后将其添加到QListWidget。但是,即使我在Windows上,文件夹名称仍将作为E:/media返回。我希望它能返回E:\media

    我可以使用一个简单的字符串替换,但是在Linux/Mac上有\home\user\Documents看起来很奇怪

    我的代码如果有帮助:

    void LibrariesForm::on_addButton_clicked()
    {
        QString dir = QFileDialog::getExistingDirectory(this, tr("Select Folder"), "/", QFileDialog::ShowDirsOnly);
    
        if (dir.isNull() == true)
        {
            return;
        }
    
        ui->librariesList->addItem(new QListWidgetItem(dir, ui->librariesList, 0));
    }
    
    2 回复  |  直到 14 年前
        1
  •  12
  •   Jérôme    14 年前
        2
  •  1
  •   grefab    14 年前

    如果只在内部使用字符串,则不需要将斜杠转换为反斜杠。Qt的类也可以使用linux风格的路径。如果您想要一个“漂亮的打印”字符串,请接受Jrme的回答。:)