qml

How do I make a gradient opacity in an image?

て烟熏妆下的殇ゞ 提交于 2019-12-18 05:18:11
问题 How do I make an image fade in qml? How do I achieve this effect? here I attach the image of how I want it to look 回答1: A possible solution is to use OpacityMask with a LinearGradient as source import QtQuick 2.9 import QtQuick.Window 2.2 import QtGraphicalEffects 1.0 Window { visible: true width: 600 height: 600 title: qsTr("Hello World") Image { id: input source: "input.jpg" anchors.fill: parent OpacityMask { source: mask maskSource: input } LinearGradient { id: mask anchors.fill: parent

QML Form layout (GridLayout) troubles

那年仲夏 提交于 2019-12-18 05:03:58
问题 I am trying now to convert my app UI from C++ to QML. At some step I need a login window so I created it in QML with code below: Window { id: loginWindow property string username: login.text; property string password: password.text; property bool issave: savePassword.checked; flags: Qt.Dialog modality: Qt.WindowModal width: 400 height: 160 minimumHeight: 160 minimumWidth: 400 title: "Login to program" GridLayout { columns: 2 anchors.fill: parent anchors.margins: 10 rowSpacing: 10

从头学Qt Quick(2)-- QML语法从一个简单的例子说起

半城伤御伤魂 提交于 2019-12-18 04:59:19
在 上一篇文章 中,我们对QtQuick做了简单的介绍,体验了使用QML语言构建一个UI的便捷。这里我们简要介绍一下QML的语法。 QML将界面分成一些更小的元素,这些元素可以组成一个组件,QML语言描述了UI的形状和行为,并且可以使用JavaScript修饰。总的来说QML的结构有点像HTML,其语法和CSS比较近似。 1.QML层次结构 要使用QML进行界面的布局,首先需要理解QML元素的层次结构。QML的层次结构很简单,是一个树形结构,最外层必须有一个根元素,根元素里面可以嵌套一个或多个子元素,子元素里面还可以包含子元素。如果用图形画出来的话大概是这个样子。 QML的坐标系采用的屏幕坐标系,原点在屏幕左上角,x轴从左向右增大,y轴从商到下增大,z轴从屏幕向外增大。子元素从父元素上继承了坐标系统,它的x,y总是相对于它的父元素坐标系。这一点一定要记住,非常重要。 2.基本语法 我们主要对照下面的代码进行介绍: 1 import QtQuick 2.4 2 import QtQuick.Window 2.2 3 import QtQuick.Controls 1.2 4 5 /* 这是一个多行注释,和c语言的一样 */ 6 // 当然这是一个单行注释 7 8 Window { 9 10 id:root; // Window元素的id,应该保证在这个qml文件中名字唯一 11

Remove rows from QAbstractListModel

戏子无情 提交于 2019-12-18 04:55:10
问题 I have a custom model which derives from QAbstractListModel which is exposed to QML. I need to support operations to add new items and remove existing items. While insertion operation works without any problems, removal operation causes the application to crash while calling endRemoveRows() function. void GPageModel::addNewPage() { if(m_pageList.count()<9) { beginInsertRows(QModelIndex(),rowCount(),rowCount()); GPage * page = new GPage(); QQmlEngine::setObjectOwnership(page,QQmlEngine:

QML之使用Loader加载QML组件

情到浓时终转凉″ 提交于 2019-12-18 04:54:23
呵呵,今晚是边看《裸婚时代》边敲代码,那电影看得...!钱真他妈不是个东西. 盼望Meego火起来。 QML的Loader元素经常备用来动态加载QML组件。可以使用source属性或者sourceComponent属性加载。这个元素最有用的地方是它能在qml组件需要的时候再创建,即延迟创建QML的时间。 1、 [css] view plain copy main.qml ------------------------------------ import QtQuick 1.0 Item { property bool isFirst : false; width: 200 height: 200 Loader { id: pageLoader } MouseArea { anchors.fill: parent onClicked: changePage(); } function changePage() { if(isFirst) { pageLoader.source = "Page1.qml" } else { pageLoader.source = "Page2.qml" } isFirst = !isFirst; } } Page 1.qml ------------------------------------- import QtQuick 1.0

QT之QML控件篇

╄→гoц情女王★ 提交于 2019-12-18 04:53:46
QT quick中提供了很多的实用控件widget,下面介绍几种常用的。 这部分介绍基本是参照QtCretator提供的帮助文档,一定要学会使用,不明白的去查找帮助。 Item 基本上所有的可是控件的基类都是Item,上节说过了QML的格式是以property:value的方式书写,所以了解一个控件主要的就是了解它提供了哪些属性properties和方法methods,属性又可以分为默认default属性、一般general属性、附加attached属性。 默认属性只有一个就是data,value的类型时 list<Object> 常用的一般属性有x、y、z、width、height、visible、enabled、foucus、anchors、status等,更多请在QtCreateor帮助索引中输入Item关键字查找,对这些属性过目一般,了解基本含义,有助于你使用其它继承自Item的控件时,知道哪些属性是继承自Item的,哪些是这个控件提供的。 附加属性常用的就是Keys,用来处理按键事件 此外当属性发生变化时,一般会发出一个信号,信号处理器的格式是on{Propety}Changed Rectangle Rectangle顾名思义就是一个矩形,它是一个带边框可填充颜色的矩形区域。 它继承自Item,它的属性除了Item的属性外,还有border、color、gradient

Qt 学习之路 2(76):QML 和 QtQuick 2

旧城冷巷雨未停 提交于 2019-12-18 04:53:24
Home / Qt 学习之路 2 / Qt 学习之路 2(76):QML 和 QtQuick 2 Qt 学习之路 2(76):QML 和 QtQuick 2 豆子 2013年12月18日 Qt 学习之路 2 12条评论 前面我们已经了解了 Qt 的一部分内容。这部分内容全部集中在 C++ 方面。也就是说,至今为止我们的程序都是使用 C++ 语言完成的。这在 Qt 5 之前的版本中是唯一的途径。不过,自从 Qt 5 开始,情况有了变化。事实上,从 Qt 4.7 开始,Qt 引入了一种声明式脚本语言,称为 QML(Qt Meta Language 或者 Qt Modeling Language),作为 C++ 语言的一种替代。而 Qt Quick 就是使用 QML 构建的一套类库。 QML 是一种基于 JavaScript 的声明式语言。在 Qt 5 中,QML 有了长足进步,并且同 C++ 并列成为 Qt 的首选编程语言。也就是说,使用 Qt 5,我们不仅可以使用 C++ 开发 Qt 程序,而且可以使用 QML。虽然 QML 是解释型语言,性能要比 C++ 低一些,但是新版 QML 使用 V8,Qt 5.2 又引入了专为 QML 优化的 V4 引擎,使得其性能不再有明显降低。在 Nokia 发布 Qt 4.7 的时候,QML 被用于开发手机应用程序,全面支持触摸操作、流畅的动画效果等

Qt 学习之路:QML 和 QtQuick 2

跟風遠走 提交于 2019-12-18 04:52:47
前面我们已经了解了 Qt 的一部分内容。这部分内容全部集中在 C++ 方面。也就是说,至今为止我们的程序都是使用 C++ 语言完成的。这在 Qt 5 之前的版本中是唯一的途径。不过,自从 Qt 5 开始,情况有了变化。事实上,从 Qt 4.7 开始,Qt 引入了一种声明式脚本语言,称为 QML(Qt Meta Language 或者 Qt Modeling Language),作为 C++ 语言的一种替代。而 Qt Quick 就是使用 QML 构建的一套类库。 QML 是一种基于 JavaScript 的声明式语言。在 Qt 5 中,QML 有了长足进步,并且同 C++ 并列成为 Qt 的首选编程语言。也就是说,使用 Qt 5,我们不仅可以使用 C++ 开发 Qt 程序,而且可以使用 QML。虽然 QML 是解释型语言,性能要比 C++ 低一些,但是新版 QML 使用 V8,Qt 5.2 又引入了专为 QML 优化的 V4 引擎,使得其性能不再有明显降低。在 Nokia 发布 Qt 4.7 的时候,QML 被用于开发手机应用程序,全面支持触摸操作、流畅的动画效果等。但是在 Qt 5 中,QML 已经不仅限于开发手机应用,也可以用户开发传统的桌面程序。 QML 文档描述了一个对象树。QML 元素包含了其构造块、图形元素(矩形、图片等)和行为(例如动画、切换等)。这些 QML

qt quick中qml编程语言

跟風遠走 提交于 2019-12-18 04:52:09
Qt QML 入门 — 使用C++定义QML类型 发表于 2013 年 3 月 11 日 注册C++类 注册可实例化的类型 注册不实例化的QML类型 附带属性 注册C++类 注册可实例化的类型 如果一个C++类继承自QObject,如果需要在QML中使用创建对象,则需要注册为可实例化的QML类型。 使用 qmlRegisterType() 注册可实例化的QML类型,具体查看qmlRegisterType()的文档说明。 //Message.cpp class Message : public QObject { Q_OBJECT Q_PROPERTY(QString author READ author WRITE setAuthor NOTIFY authorChanged) Q_PROPERTY(QDateTime creationDate READ creationDate WRITE setCreationDate NOTIFY creationDateChanged) public: // ... }; //main.cpp #include <QtQml> ... qmlRegisterType<Message>("com.mycompany.messaging", 1, 0, "Message"); ... //aQmlFile.qml import com

Qt之QML开发常用知识

旧街凉风 提交于 2019-12-18 04:51:38
小技巧: 1. QML的内部逻辑可以直接调试 2. ctrl+ alt + space,在写QML时,可以直接调出工具条 3. 属性以小写字母开发 4. 属性改变事件,基本都是on+Property+Changed 5. 在代码里使用qrc资源的qml,在从qrc的item复制路径下添加qrc,然后冒号后再加一个斜杠如qrc:///main.qml;如果你的qml文件在qrc的分类中, 不是放在/分类下,不用添加该斜杠。在qml中直接在复制地址前加qrc即可 6.findChild使用里面的参数,对应的是QML中的objectName,不是QML中的id 7.QML对象,如果没有设置id,则使用时才初始化,如果设置了id,则一开始就初始化了 8.QML子对象可以直接使用父对象的属性,跨文件的情况同样可用 待续。。。 名词解释 1.QQuickView 提供了一个窗体用于显示UI 2. QQuickEngine 提供QML运行环境 3. QQuickWindow 显示窗体, 以及对item对象的管理及用户交互 编码约定: QML文件分成下面几个部分: id: 对象属性 属性声明(私有属性加__): 信号声明 JS函数 计时器、FileDialog之类 子对象 状态 状态切换 不同部分中间空一行;尽量用分组属性;如果JS函数较多,可以放到一个js文件中; 如果component