qml-------------实现一个简单的图片加载程序
2015-09-06 10:40
507 查看
上节课中学习了如何加载一个网络图片,这节课接着上节课的代码来写一个图片加载程序。
首先,可以重用上节课中的图片加载的代码。新添加的东西就是,一个button,一个Text文本标签,一个FileDialog文件对话框。
具体代码如下:
其中FileDialog是qml中的文件对话框,用来选择已有的文件,文件夹,支持单选多选等。
当需要多选的时候,设置以下属性就可以了。
selectMulitple:true;
首先,可以重用上节课中的图片加载的代码。新添加的东西就是,一个button,一个Text文本标签,一个FileDialog文件对话框。
具体代码如下:
import QtQuick 2.2 import QtQuick.Window 2.1 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.2 import QtQuick.Dialogs 1.1 Window{ visible: true; width: 600; height: 480; minimumWidth: 480; minimumHeight: 380; BusyIndicator{ id:busy; running: true; anchors.centerIn: parent; z:2; } Text{ id:statusLabel; visible: false; anchors.centerIn: parent; z:3; } Image{ id: imageViewer; asynchronous: true; cache: false; anchors.fill: parent; fillMode: Image.PreserveAspectFit; onStatusChanged: { if(imageViewer.states === Image.Loading){ busy.running = true; statusLabel.visible = false; } else if(imageViewer.status === Image.Ready){ busy.running = false; } else if(imageViewer.status === Image.Error){ busy.running = false; statusLabel.visible = true; statusLabel.text = "ERROR"; } } } Button{ id:openFile; text:"Open"; anchors.left: parent.left; anchors.leftMargin: 8; anchors.bottom: parent.bottom; anchors.bottomMargin: 8; style: ButtonStyle{ background: Rectangle{ implicitWidth: 70; implicitHeight: 25; color:control.hovered?"#c0c0c0":"#a0a0a0"; border.width: control.pressed ? 2 : 1; border.color: (control.hovered || control.pressed)? "green":"#888888"; } } onClicked: fileDialog.open(); z:4; } Text{ id:imagepath; anchors.left: openFile.right; anchors.leftMargin: 8; anchors.verticalCenter: openFile.verticalCenter; font.pixelSize: 18; } FileDialog{ id: fileDialog; title: "Please choose a file"; nameFilters: ["Image Files (*.jpg *.png *.gif)"]; onAccepted: { imageViewer.source = fileDialog.fileUrl; var imageFile = new String(fileDialog.fileUrl); imagepath.text = imageFile.slice(8); } } }
其中FileDialog是qml中的文件对话框,用来选择已有的文件,文件夹,支持单选多选等。
当需要多选的时候,设置以下属性就可以了。
selectMulitple:true;
相关文章推荐
- Android-getWritableDatabase()与getReadableDatabase()
- Thinking in java 之:静态数据的初始化及初始化顺序
- 大数据创业“独角兽”: 原来本·拉登是让大数据整死的
- 关系型数据库与非关系型数据库的区别?
- 动态库与静态库【linux】
- 结构型模式:代理模式(Proxy Pattern)
- AFNetworking的图片、视频下载并保存到指定的app的Caches目录下
- Android实例-程序界面内截取屏幕(XE8+小米2)
- 没有为 'c' 的列 1 指定任何列名称。
- 转:Jmeter 用户思考时间(User think time),定时器,和代理服务器(proxy server)
- json教程系列(4)-optXXX方法的使用
- golang-反射机制
- RecyclerView添加分割线但无法显示
- Eclipse+maven+spring
- Hadoop 实例9 Join讲解2: 将人员的地址ID完善成为地址名称
- 大端法、小端法、网络字节序
- 文件名 一阶熵 EARTH.IMG 4.770801 OMAHA.IMG 6.942426 SENA.IMG 6.834299 SENSIN.IMG 7.317944 BERK.RAW 7.151537 GABE.RAW 7.116338
- MSSQL - 自增1的标识列一次增长了1000
- Linux_shell——第8章 当个好管家
- 随机数生成器