Как установить символ разделителя каталогов в соответствии с операционной системой?
Я пишу приложение 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 ответа
Решение
Если вы используете строку только для внутреннего использования, вам не нужно преобразовывать косую черту в обратную косую черту. Классы Qt также работают с патчами в стиле Linux. Если вы хотите "красиво напечатанную" строку, примите ответ Жерома.:)