首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Qt QDesktopServices::openUrl()错误2

Qt QDesktopServices::openUrl()错误2
EN

Stack Overflow用户
提问于 2013-08-13 05:01:00
回答 2查看 4.3K关注 0票数 3

我在使用QDesktopServices::openUrl()函数打开文件时遇到问题。

我有一个生成文件绝对地址的代码,但当我尝试运行它时,我得到了shellExecute错误2。

这是我使用的代码:

代码语言:javascript
运行
复制
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)); 

}

当我尝试手动编写path为"file:///.../file.mp3“,它工作良好,但为什么生成的地址不是?”我也尝试了只使用QString地址,但结果相同。

EN

回答 2

Stack Overflow用户

发布于 2013-08-13 05:10:37

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

你有什么特别的理由不直接把你的地址传给QUrl吗?没有tempArray?addrW?

票数 0
EN

Stack Overflow用户

发布于 2021-04-26 23:06:23

QUrl有一个fromLocalFile()函数:

代码语言:javascript
运行
复制
QDesktopServices::openUrl(QUrl::fromLocalFile(act->data().toString()));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18196624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档