• 9937阅读
  • 2回复

qt怎么用默认的打开方式打开本地文件,就像ShellExcute的效果 [复制链接]

上一主题 下一主题
离线fly931
 
只看楼主 倒序阅读 楼主  发表于: 2010-09-05
— 本帖被 XChinux 执行加亮操作(2010-09-06) —
比如一个C:/x.csv,就用系统关联的打开方法打开,就像ShellExcute的效果

我找了一下:
QProcess *process;

  process=new QProcess;
  QString string("C:\\flashxp\\flashfxp.exe");
  if(!process->startDetached(string))
  {
  QMessageBox::warning(this,tr("erro"),tr("%1").arg(process->error()),QMessageBox::Ok);
  }
主要注意的有两点:

1、转义字符,在盘符后面的一定是"\\",,而不是“\”。

2、在string里面的路径不能有空格。

以上两点错误在编译的时候不会出错,但是检测一下process erro就会发现出来了,出错的结果是:5,不知名的错误。

这种方法只能打开exe文件.

qt怎么调用windows api:ShellExecute

离线dbzhang800

只看该作者 1楼 发表于: 2010-09-05
1. 去看 QDesktopServices 的 manual

2. 最后一句什么意思?在 Linux 下调用 windows 的api??结合你的例子,全是C:盘符,莫非发错版了??

3. 系统 api 你用c或c++时怎么调现在就怎么去调,Qt对此不会有任何影响
离线XChinux

只看该作者 2楼 发表于: 2010-09-06
QDesktopServices::openUrl(QUrl::fromLocalFile("C:/xxxxx/ddddd.pdf"));
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个