2

私は、3つの主要なオペレーティングシステムに移植できることを目標に、qtアプリケーションを作成しています。

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));
}
4

2 に答える 2

12

QDir :: toNativeSeparators()を探していると思います。

于 2010-06-24T06:41:32.617 に答える
1

文字列を内部で使用する場合は、スラッシュを円記号に変換する必要はありません。QtのクラスはLinuxスタイルのパスでも機能します。「きれいに印刷された」文字列が必要な場合は、Jérômeの回答を参考にしてください。:)

于 2010-06-24T08:20:41.747 に答える