QDesktopServices
此类提供了打开url的功能,并且随着url类型(scheme,指的是url前缀)的不同,可以自定义打开url的行为
QDesktopServices::openUrl(QUrl("file:///D:/PROGRAM/SOME.EXE"));//此处file:///就是url的scheme,表示以文件形式打开此url
//还可以通过设置handler来自定义打开url的行为
QDesktopServices::setUrlHandler("file",Handler,"handle");//参数依次为:scheme、具体handler对象,以及具体handle的功能函数
//handler提供的函数必须是槽函数,且只接收一个QUrl类型的参数
void Handler::handle(const QUrl& url)
{
QString scheme=url.scheme();//获取url的scheme
if(scheme=="file")
...//根据获取的scheme作相应操作
}
//最后,还可以移除handler
QDesktopServices::unsetUrlHandler("file");