Как установить символ разделителя каталогов в соответствии с операционной системой? - PullRequest
2 голосов
/ 24 июня 2010

Я пишу приложение 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 ]

11 голосов
/ 24 июня 2010

Полагаю, вы ищете QDir :: toNativeSeparators () .

1 голос
/ 24 июня 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...