您的位置:首页 > 编程语言 > Qt开发

Qt之QDesktopServices

2015-08-05 11:56 531 查看

转载▼

如果使用Qt开发界面,往往离不开QDesktopServices,QDesktopServices不仅可以打开本地浏览器,而且还可以打开本地文件(夹)等,可以获取桌面、我的文档、Home等目录。。。好吧,实现比较简单!



1、打开浏览器网页

QUrl url(QString("www.google.com"));

bool is_open = QDesktopServices::openUrl(url);



2、打开本地文件(夹)、可执行程序等

QString local_path = QString("E:/新建文件夹"); //a.txt、a.exe、a.mp3、a.mp4、a.rmvb等

QString path = QString("file:///") + local_path;

bool is_open = QDesktopServices::openUrl(QUrl(path, QUrl::TolerantMode));



注意:这里local_path可以是文件(夹)路径、可执行程序路径,当为文件时,会选择默认打开方式进行打开!



3、获取桌面、我的文档、Home等目录的路径

QString desktop_path = QDesktopServices::storageLocation(QDesktopServices::DesktopLocation);

QString document_path = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation);

QString home_path = QDesktopServices::storageLocation(QDesktopServices::HomeLocation);

QString application_path = QDesktopServices::storageLocatio(QDesktopServices::ApplicationsLocation);

QString temp_path = QDesktopServices::storageLocation(QDesktopServices::TempLocation);



在这里再罗嗦一点,QProcess也可以打开文件(夹)、可执行程序等

QString local_path = QString("E:\\新建文件夹");

bool is_start = QProcess::startDetached("explorer " + local_path);

都可以打开文件夹但有些不同,

1是实际是启动一个程序,只是可以传参数,所以要指定用什么打开,打开参数是什么(这里里用explorer打开,参数是路径)路径记得换成"\"否则打开C盘 囧

2.以默认方式打开指定路径的东西,也许是一个路径,也许是一个文件,通过比较你发现2比较好写也,但很快你会发现发生了悲剧的事情,路径中当在A文件夹打开最后一个B文件夹时,如果A中有一个和B文件夹同名的 .exe文件,打开的竟然是这个.exe.......囧(c:/A/B, A里有个B.exe)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: