需要调用系统的默认程序打开某文件,没有找到Qt的实现方法,只能调用Windows的API:ShellExecute。

 

以下代码是从我自己的工程拷出来的,可以运行的:

1、添加头文件

 
  
  1. #include "Windows.h" 
  2. #include "ShellAPI.h" 

2、调用ShellExecute

 
  
  1. ShellExecuteW(NULL,QString("open").toStdWString().c_str(),QString("c://boot.ini").toStdWString().c_str(),NULL,NULL,SW_SHOW); 

这里注意一下QString的类型是不能直接作为ShellExecute的参数的。

编译一下,如果这样能运行,请留言告诉我一声,因为在我的机器上面会有以下链接报错:

savesuccessdialog.obj:-1: 错误:LNK2019: unresolved external symbol __imp__ShellExecuteW@24 referenced in function "private: void __thiscall SaveSuccessDialog::on_btnOpenFile_clicked(void)" (?on_btnOpenFile_clicked@SaveSuccessDialog@@AAEXXZ)

release\CoreExe.exe:-1: 错误:LNK1120: 1 unresolved externals

这是因为没有引入相应的库,要在工程文件*.pro中加上一句:

 

 
  
  1. LIBS += shell32.lib 

现在可以顺利编译运行了!