3

QDesktopServices::openUrl() 関数を使用してファイルを開くのに問題があります。

ファイルの絶対アドレスを生成するコードがありますが、実行しようとすると、shellExecute エラー 2 が発生します。

これは私が使用しているコードです:

void openFileMainWindow::runSong() {
QAction *act = qobject_cast<QAction *>(sender());

QString addr = "file:///";
addr.append(QString(act->data().toString()));

QByteArray tempArray  = addr.toUtf8();
const char * addrW    = tempArray.data();

QMessageBox::warning(this, tr("Info"), tr("You are trying to open file:\n%1").arg(addrW), QMessageBox::Ok);

QDesktopServices::openUrl(QUrl(addrW, QUrl::TolerantMode)); 

}

手動で「file:///.../file.mp3」とパスを書き込もうとしたところうまくいきましたが、生成されたアドレスがうまくいかないのはなぜですか? QString addr のみでも試しましたが、結果は同じでした。

4

2 に答える 2