Qt之QDesktopServices
2015-08-05 11:56
531 查看
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
转载▼
如果使用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)
相关文章推荐
- Qt遍历文件夹
- QT国际化
- QTP的退出函数
- QT安装
- QT实现一个简单的计算器
- 嵌入式交叉编译器,uboot,kernel,根文件系统,tslib,qt编译配置
- Qt 删除资源文件后提示找不到相应文件
- 针对QTP连接oracle数据库问题总结
- Qt拷贝文件、文件夹(QFile::copy)
- QT::QString 很全的使用
- Qt 5.3 下OpenCV 2.4.11 开发(9)直方图均衡化
- VS2013编译安装VTK-6.2.0_支持Qt5.4.2
- QTP连接oracle
- QT 串口通讯软件编写
- 【LCA】SPOJ QTREE2
- <h3>QT中使用QNetworkAccessManager类进行POST数据
- 【Qt OpenGL教程】13:位图字体
- Qt4过渡至Qt5
- Qt进程间通信——共享内存
- 如何让Qt 的程序等待一段时间