Как установить символ разделителя каталогов в соответствии с операционной системой?

Я пишу приложение qt с целью его переносимости на 3 основные операционные системы.

Я использую QFileDialog, чтобы выбрать папку, а затем добавляю ее в QListWidget. Однако имя папки возвращается как E:/media, хотя я нахожусь в Windows. Я бы хотел вернуть 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 ответа

Решение

Я думаю, вы ищете QDir:: toNativeSeparators ().

Если вы используете строку только для внутреннего использования, вам не нужно преобразовывать косую черту в обратную косую черту. Классы Qt также работают с патчами в стиле Linux. Если вы хотите "красиво напечатанную" строку, примите ответ Жерома.:)

Другие вопросы по тегам