如何使用Ubuntu SDK DownloadManager来同时下载多个文件
2015-05-05 16:21
477 查看
在上一篇文章“如何使用Ubuntu SDK中的Download Manager来下载文件”中,我们已经介绍了如何使用SingleDownload来下载一个文件。在这篇文章中我们将介绍如何使用DownloadManager来同时下载多个文件。
我们可以按照同样的方法创建一个简单的“QML App with Simple UI (qmlproject)”项目。关于DownloadManager的具体的API描述,可以具体看上一篇文章。这里就不再累述。我们可以申明一个DownloadManager的实例:
记得要加上如下的库:
在这里,为了得到所下载文件的信息,我们捕获信号“onDownloadsChanged”,并对它进行动态信号/槽绑定:
这样我们就可以得到下载的文件了。其它的就没有什么特别的。这里要理解downloads中的每个为SingleDownload。这样就不难理解了。
我们修改我们的Main.qml如下:
运行应用,显示为:
![](http://img.blog.csdn.net/20150505161705932?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVWJ1bnR1VG91Y2g=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
我们可以修改下载的链接地址,也可以直接按下下载按钮。每次都会产生一个新的下载。我们把照片显示出来。
所有源码在:https://github.com/liu-xiao-guo/downloadmanager
我们可以按照同样的方法创建一个简单的“QML App with Simple UI (qmlproject)”项目。关于DownloadManager的具体的API描述,可以具体看上一篇文章。这里就不再累述。我们可以申明一个DownloadManager的实例:
DownloadManager { id: manager onDownloadsChanged: { console.log("something is changed!"); var length = downloads.length; console.log("length: " + length); for (var i = 0; i < length; i ++ ) { downloads[i].finished.connect(onFinished); } function onFinished(path) { console.log("path: " + path); mymodel.append( {"filename" : path }) } } }
记得要加上如下的库:
import Ubuntu.DownloadManager 0.1
在这里,为了得到所下载文件的信息,我们捕获信号“onDownloadsChanged”,并对它进行动态信号/槽绑定:
for (var i = 0; i < length; i ++ ) { downloads[i].finished.connect(onFinished); }
这样我们就可以得到下载的文件了。其它的就没有什么特别的。这里要理解downloads中的每个为SingleDownload。这样就不难理解了。
我们修改我们的Main.qml如下:
import QtQuick 2.0 import Ubuntu.Components 1.1 import Ubuntu.DownloadManager 0.1 /*! \brief MainView with a Label and Button elements. */ MainView { // objectName for functional testing purposes (autopilot-qt5) objectName: "mainView" // Note! applicationName needs to match the "name" field of the click manifest applicationName: "downloadmanager.liu-xiao-guo" /* This property enables the application to change orientation when the device is rotated. The default is false. */ //automaticOrientation: true // Removes the old toolbar and enables new features of the new header. useDeprecatedToolbar: false width: units.gu(60) height: units.gu(85) Page { title: i18n.tr("Download Manager") ListModel { id: mymodel } DownloadManager { id: manager onDownloadsChanged: { console.log("something is changed!"); var length = downloads.length; console.log("length: " + length); for (var i = 0; i < length; i ++ ) { downloads[i].finished.connect(onFinished); } function onFinished(path) { console.log("path: " + path); mymodel.append( {"filename" : path }) } } } TextField { id: text placeholderText: "File URL to download..." height: units.gu(5) anchors { left: parent.left right: button.left rightMargin: units.gu(2) } text: "http://img0.bdstatic.com/img/image/6446027056db8afa73b23eaf953dadde1410240902.jpg" } Button { id: button text: "Download" height: 50 anchors.top: text.top anchors.bottom: text.bottom anchors.right: parent.right anchors.verticalCenter: text.verticalCenter onClicked: { manager.download(text.text); } } ListView { id: list clip: true anchors { left: parent.left right: parent.right top: text.bottom } height: units.gu(20) model: manager.downloads delegate: ProgressBar { width: parent.width minimumValue: 0 maximumValue: 100 value: modelData.progress } } GridView { id: pics clip: true anchors.bottom: parent.bottom anchors.left: parent.left anchors.right: parent.right anchors.top: list.bottom model: mymodel cellWidth: pics.width/4; cellHeight: cellWidth + units.gu(2) delegate: Image { width: parent.width / 4 height: width + units.gu(2) source: filename fillMode: Image.PreserveAspectFit } } } }
运行应用,显示为:
我们可以修改下载的链接地址,也可以直接按下下载按钮。每次都会产生一个新的下载。我们把照片显示出来。
所有源码在:https://github.com/liu-xiao-guo/downloadmanager
相关文章推荐
- 如何使用Ubuntu SDK中的Download Manager来下载文件
- Ubuntu下同时安装了python2版本和python3版本如何使用pip分别为P2和P3安装不同类库
- 如何在网上下载图片,表情使用迅雷下载更多文件
- 如何为ios酷我音乐盒下载导出的音乐文件(使用Java程序设计)
- 如何使用 Netty 下载文件
- android开发(23)使用DownloadManager下载文件
- 如何使用搜索引擎下载文件
- linux下如何使用sftp命令进行文件上传和下载
- linux下如何使用sftp命令进行文件上传和下载
- linux下如何使用sftp命令进行文件上传和下载
- 搭建android版本更新服务器使用android系统自带的DownloadManager下载文件
- ubuntu使用命令行下载文件
- 使用Android自带DownloadManager下载文件
- 如何从ios酷我音乐盒中导出已下载的音乐文件(使用Java编程实现)
- 使用DownloadManager进行文件下载
- 实例:如何使用 Netty 下载文件
- 解决ubuntu 64bit AndroidStudio中的SDK无法使用的问题,提示找不到该文件或目录
- 如何在Ubuntu/Linux内使用 zip 压缩隐藏文件?
- 如何使用 SHA256 校验下载的文件
- 如何使用Ubuntu SDK (视频)