需要调用系统的默认程序打开某文件,没有找到Qt的实现方法,只能调用Windows的API:ShellExecute。
以下代码是从我自己的工程拷出来的,可以运行的:
1、添加头文件
- #include "Windows.h"
- #include "ShellAPI.h"
2、调用ShellExecute
- 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中加上一句:
- LIBS += shell32.lib
现在可以顺利编译运行了!
转载于:https://blog.51cto.com/hhuayuan/1122469