Qt Quick模块是编写QML应用程序的标准库。虽然Qt QML模块提供QML引擎和语言基础结构,但Qt Quick模块提供了使用QML创建用户界面所需的所有基本类型。它提供了一个可视画布,包括用于创建和动画可视组件,接收用户输入,创建数据模型和视图以及延​​迟对象实例化的类型。

Qt Quick模块提供了QML API,它提供了用于使用QML语言创建用户界面的QML类型,以及用于使用C ++代码扩展QML应用程序的C ++ API。

注意:还可以使用一组基于Qt Quick的UI控件来创建用户界面。有关更多信息,请参阅Qt Quick Controls 2。

对于那些刚接触QML和Qt Quick的人,请参阅QML应用程序,了解编写QML应用程序的介绍。

下面通过简单的小代码对Quick中的 部分控件的结合使用 制作一个简单的图片查看器

Image

Text

Button

Rectangle

FileDialog

BusyIndicator 

import QtQuick 2.9
import QtQuick.Window 2.11
import QtQuick.Controls 2.4
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
import QtQuick.Dialogs 1.3
Window{
id:mainWindow
width: 600
height: 400
visible: true
Rectangle{
id:view_image_rectagnle
anchors.top:parent.top
anchors.topMargin: 10
anchors.left: parent.left
anchors.leftMargin: 10
anchors.right: parent.right
anchors.rightMargin: 10
anchors.bottom: parent.bottom
anchors.bottomMargin: 60
border.color: "#55ffff"
border.width: 2
radius: 5
Image {
id: imageView
anchors.fill: parent
anchors.margins: 10
source: ""
asynchronous: true
cache: false
fillMode: Image.PreserveAspectFit
onScaleChanged: {
if(imageView.status == Image.Loading){
busy.running = true
}else if(status == Image.Ready){
busy.running = false
}else if(status == Image.Error){
pathText.text = "图片加载失败"
}
}
}
}
Button{
id:openBtn
implicitWidth: 100
implicitHeight: 20
anchors.top: view_image_rectagnle.bottom
anchors.topMargin: 10
anchors.left: view_image_rectagnle.left
anchors.bottom: parent.bottom
anchors.bottomMargin: 10
text:"Open"
style: ButtonStyle{
background: Rectangle{
anchors.fill: parent
border.color: "#55eeff"
border.width: Control.activeFocus ? 5 : 2
}
}
MouseArea{
anchors.fill: parent
onClicked: {
//打开文件
fileDialog.open()
}
}
}
//显示文件路径
Text{
id:pathText
anchors.top: openBtn.top
anchors.left: openBtn.right
anchors.leftMargin: 10
verticalAlignment: Text.AlignVCenter
padding: 10
text:"1111111111111"
}
//文件选择框
FileDialog{
id:fileDialog
title:"请选择您要展示的图片"
nameFilters: ["Image Files(*.jpg *.png *.bmp)"]
onAccepted: {
console.log(fileUrl)
pathText.text = fileUrl
imageView.source = fileUrl
}
onRejected: {
console.log("用户取消了选择")
}
}
//繁忙指示器
BusyIndicator{
id:busy
running: false
z:2
} }

  效果:

Qt Quick QMl学习笔记 之图片浏览器的更多相关文章

  1. QML学习笔记(六)- 简单计时器和定时器

    做一个简单的qml计时器和定时器,左键触发计时,右键触发定时 GitHub:八至 作者:狐狸家的鱼 本文链接:QML学习笔记(六)- 简单计时器和定时器 左键点击按钮,触发计时器,中键可以暂停计时,同 ...

  2. qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

    原博主博客地址:http://blog.csdn.net/qq21497936本文章博客地址:http://blog.csdn.net/qq21497936/article/details/78516 ...

  3. (转)Qt Model/View 学习笔记 (七)——Delegate类

    Qt Model/View 学习笔记 (七) Delegate  类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...

  4. (转)Qt Model/View 学习笔记 (五)——View 类

    Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...

  5. [置顶] iOS学习笔记47——图片异步加载之EGOImageLoading

    上次在<iOS学习笔记46——图片异步加载之SDWebImage>中介绍过一个开源的图片异步加载库,今天来介绍另外一个功能类似的EGOImageLoading,看名字知道,之前的一篇学习笔 ...

  6. QML学习笔记(五)— 做一个简单的待做事项列表

    做一个简单的QML待做事项列表,能够动态添加和删除和编辑数据 GitHub:八至 作者:狐狸家的鱼 本文链接:QML学习笔记(五)— 做一个待做事项列表 主要用到QML:ListView 效果 全部代 ...

  7. QML学习笔记之一

    摘自<Qt Quick中文手册> Qt Quick提供了一套高动态,丰富的QML元素来定制用户界面的说明性框架. Qt Quick包含了QtDeclarative C++模块.QML,并且 ...

  8. Qt快速入门学习笔记(基础篇)

    本文基于Qter开源社区论坛版主yafeilinux编写的<Qt快速入门系列教程目录>,网址:http://bbs.qter.org/forum.php?mod=viewthread&am ...

  9. Webpack4 学习笔记五 图片解析、输出的文件划分目录

    前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 webpack打包图片和划分文件路径 使用图片的方式 通过 new Image() 在 css中设置 background-imag ...

随机推荐

  1. 14.libgdx的一些坑记录(持续更新)

    1. internal的文件路径 无法用list获取目录下文件     2.动态打包散图无法放入资源管理器,只能在资源加载器打包后的散图再合成打包,但都不如提前打包 3.资源加载器读入以texture ...

  2. Streamy障碍一:大批量条目

  3. Python深入:01内存管理

            在Python中,一切都是指针. 一:对象三特性         所有的Python对象都有三个特性:身份,类型和值.         身份:每一个对象都有一个唯一的身份标识,任何对象 ...

  4. 【hiho一下 第147周】小Hi的烦恼

    [题目链接]:http://hihocoder.com/contest/hiho147/problem/1 [题意] [题解] bitset的应用; 设better[j][i]表示第j个科目排名为1. ...

  5. iptables 过滤条件(Matches)

    iptables可让你设置多种过滤条件,但是某些条件需要核心有提供相关功能才行.Iptables本身內建一般性的Internet Protocol (IP) 过滤条件,也就是說,即时沒载入任何扩充模组 ...

  6. Getting started with the basics of programming exercises_5

    1.编写函数,把由十六进制数字组成的字符串转换为对应的整型值 编写函数htoi(s),把由十六进制数字组成的字符串(包含可选的前缀0x或0X)转换为与之等价的整型值.字符串中允许包含的数字包括:0~9 ...

  7. Getting started with the basics of programming exercises_1

    1.编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替 使用if 结构: #include<stdio.h> #define NONBLANK 'a'; // repal ...

  8. hdu 4063 Aircraft (Geometry + SP)

    Problem - 4063 几何加简单最短路. 题意是给出若干圆的圆心以及半径,求出从给出的起点到终点的最短路径的长度,可以移动的区域是圆覆盖到的任意一个位置. 做法是这样的,对圆两两求交点,用这些 ...

  9. 我爱自然语言处理bert ner chinese

    BERT相关论文.文章和代码资源汇总 4条回复 BERT最近太火,蹭个热点,整理一下相关的资源,包括Paper, 代码和文章解读. 1.Google官方: 1) BERT: Pre-training ...

  10. 洛谷P4860 Roy&October之取石子II 题解 博弈论

    题目链接:https://www.luogu.org/problem/P4860 和<P4018 Roy&October之取石子>一样的推导思路,去找循环节. 可以发现:只要不能被 ...