需要調用系統的默認程序打開某文件,沒有找到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
現在可以順利編譯運行了!