gpt4 book ai didi

qt - QDesktopServices::openUrl() 失败并生成路径

转载 作者:行者123 更新时间:2023-12-02 01:09:31 30 4
gpt4 key购买 nike

我在使用 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 进行了尝试,但结果相同。

最佳答案

肯定是编码问题。 QUrl 将 QString 作为第一个参数。不知道将初始 QString addr 压缩到 QByteArray 中,然后获取 const char * 地址,最后让 QUrl 将其转换回 QString 后还剩下什么。

您不将地址传递给 QUrl 有什么特殊原因吗?没有临时数组?地址W?

关于qt - QDesktopServices::openUrl() 失败并生成路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18196624/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com