Qt QDesktopServices打开中文路径

caploveleo 2016-05-26 09:40:43
void MainWindow::on_pushButton_clicked()
{
QString str("D:/新建文件夹");

QDesktopServices::openUrl(QUrl(str));
}

求助大神,我通过Qt打开一个包含中文的路径,但实际并不生效,怀疑是由于字符编码的问题,但不知道该如何解决,有没有大神们实现过类似的功能,求分享,万分感谢~~~
...全文
2995 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
大大志Q 2018-12-14
  • 打赏
  • 举报
回复 1
对了,如果你的编译器是msvc ,那么不要直接用char* 去构建一个QString对象,说的是你的这种做法: QString str("D:/新建文件夹"); 直接按上面的回答写。 如果你非得构造QString对象,那么 做法1: QString str(QStringLiteral("D:/新建文件夹")); 做法2: 在你的头文件里添加了如下: #ifdef Q_CC_MSVC #pragma execution_character_set("utf-8") #endif
大大志Q 2018-12-14
  • 打赏
  • 举报
回复
QDesktopServices::openUrl(QUrl::fromLocalFile(QStringLiteral("D:/新建文件夹"))); //by 段志强_john
Jue_Xin 2018-01-10
  • 打赏
  • 举报
回复
引用 4 楼 ken_scott 的回复:
QDesktopServices::openUrl(QUrl::fromLocalFile(str.c_str()));
正解
Non-professial 2018-01-10
  • 打赏
  • 举报
回复
楼主解决了吗?我也遇到这个问题了。
炫彩灵感 2016-10-23
  • 打赏
  • 举报
回复
QString str("D://新建文件夹"); QDesktopServices::openUrl(QUrl::fromLocalFile(str));
hidxl 2016-10-23
  • 打赏
  • 举报
回复
fromLocal8bit 来构建中文字符串
  • 打赏
  • 举报
回复
我只悄悄告诉你~ replace(":/",":\\")
ken_scott 2016-10-17
  • 打赏
  • 举报
回复
QDesktopServices::openUrl(QUrl::fromLocalFile(str.c_str()));
Little柯南 2016-05-27
  • 打赏
  • 举报
回复
如果你只是打开一个中文路径,那么你用这个: QString cmd = " " ; cmd += filename; //!-- 利用QProcess打开文件,QDir::toNativeSeparators将文件路劲转换成当前系统的标准路径 QProcess::startDetached("explorer " + (QDir::toNativeSeparators(cmd)) ); filename可以包含中文路径的url
caploveleo 2016-05-26
  • 打赏
  • 举报
回复
引用 1 楼 feiyangqingyun 的回复:
改成
QString str("file:///D:/新建文件夹");
    QDesktopServices::openUrl(QUrl(str, QUrl::TolerantMode));
谢谢回复~ 试过了,不起作用呀
feiyangqingyun 2016-05-26
  • 打赏
  • 举报
回复
改成
QString str("file:///D:/新建文件夹");
    QDesktopServices::openUrl(QUrl(str, QUrl::TolerantMode));

16,211

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧