QML
52_赫兹的鲸
这个作者很懒,什么都没留下…
展开
-
QML调用C++的三种方法
1.注册法由于QML引擎与Qt元对象系统的紧密集成,可以从QML代码访问由QObject派生的类适当公开的任何功能。这使得C ++类的属性和方法可以直接从QML访问,通常很少或无需修改。QML引擎能够通过元对象系统内省QObject实例。这意味着,任何QML代码都可以访问QObject派生类实例的以下成员:属性(使用Q_PROPERTY注册的属性)方法(需注册为public slots或是标记为Q_INVOKABLE)信号(此外,如果已使用Q_ENUMS声明枚举,则可以使用枚举。)通常,无原创 2020-11-10 10:21:09 · 8848 阅读 · 0 评论 -
QML绘图实例
Qt5中引进了画布元素(canvas element) ,允许脚本绘制。画布元素(canvas element) 提供了一个依赖于分辨率的位图画布,你可以使用JavaScript脚本来绘制图形,制作游戏或者其它的动态图像。画布元素(canvas element) 是基于HTML5的画布元素来完成的。画布元素(canvas element) 的基本思想是使用一个2D对象来渲染路径。这个2D对象包括了...原创 2018-04-24 15:42:35 · 4944 阅读 · 1 评论 -
QML进阶教程:五、模型-视图-代理(MVD)
前言:在编程实践中,我们经常会有意无意的运用MVC模式(模型(Model)、视图(View)和控制器(Controller)),而在QtQuick中,数据通过model-view(模型-视图) 分离。对于每个view(视图) ,每个数据元素的可视化都分给一个代理(delegate) 。 在QML中,model(模型) 与view(视图) 都通过delegate(代理) 连接起来。功 能划分...原创 2018-04-24 14:53:03 · 3781 阅读 · 0 评论 -
QML进阶教程:四、状态(States)和过渡(Transitions)
状态:通常我们将用户界面描述为一种状态。一个状态定义了一组属性的改变,并且会在一定的条件下被触发。另外在这些状态转化的过程中可以有一个过渡(定义了这些属性的动画或者一些附加的动作,当进入一个新的状态时,动作也可以被执行)。 为了让用户界面看起来更加自然,我们需要使用动画效果来增加一些过渡。一个过渡能够被状态的改变触发。在QML中,使用State元素来定义状态,需要与基础元素对象(Item)...原创 2018-04-18 15:48:14 · 6370 阅读 · 0 评论 -
QML入门教程:八、输入元素
1、文本输入 文本输入允许用户输入一行文本。这个元素支持使用正则表达式验证器来限制输入和输入掩码的模式设置。 // textinput.qmlimport QtQuick 2.0Rectangle {width: 200height: 80color: "linen"TextInput {id: input1x: 8; y: 8width: 96; height: 20f...原创 2018-04-11 21:24:35 · 2196 阅读 · 1 评论 -
QML入门教程:七、布局元素(Layout Items)
QML使用anchors(锚)对元素进行布局。anchoring(锚定)是基础元素对象的基本属性,可以被所有的可视化QML元素使用。一个anchors(锚)就像一个协议,并且比几何变化更加强大。Anchors(锚)是相对关系的表达式,通常需要与其 它元素搭配使用。 如图:一个元素有6条锚定线(top顶,bottom底,left左,right右,horizontalCenter水平中,v...原创 2018-04-11 12:03:12 · 11869 阅读 · 1 评论 -
QML入门教程:六、定位元素(Positioning Element)
有一些QML元素被用于放置元素对象,它们被称作定位器,QtQuick模块提供了Row,Column,Grid,Flow用来作为定位器。 先介绍一些相关的元素,红色(red),蓝色(blue),绿色(green),高亮(lighter)与黑色(darker)方块,每一个组件都包含了一个48乘48的着色区域。下面是关于RedSquare(红色方块)的代码: // RedSquare.qm...原创 2018-04-11 11:44:15 · 3506 阅读 · 1 评论 -
QML入门教程:五、元素的简单转换
转换操作改变了一个对象的几何状态。QML元素对象通常能够被平移,旋转,缩放。简单的位移是通过改变x,y坐标来完成的。旋转是改变rotation(旋转)属性来完成的,这个值使用角度作为单位(0~360)。缩放是通过改变scale(比例)的属性来完成的,小于1意味着缩小,大于1意味着放大。旋转与缩放不会改变对象的几何形状,对象的x,y(坐标)与width/height(宽/高)也类似。只有绘制指令是被...原创 2018-04-11 10:15:01 · 3264 阅读 · 1 评论 -
QML入门教程:一、QML和QtQuick简介以及QML实例
从 Qt 4.7 开始,Qt 引入了一种声明式脚本语言,称为 QML(Qt Meta Language 或者 Qt Modeling Language),作为 C++ 语言的一种替代。而 Qt Quick 就是使用 QML 构建的一套类库。 QML 是一种基于 JavaScript 的声明式语言。在 Qt 5 中, QML 有了长足进步,并且同 C++ 并列...原创 2018-04-08 11:44:09 · 195664 阅读 · 17 评论 -
QML入门教程:四、QML组件
QML 可以用基本元素组合成一个复杂的元素,方便以后我们的重用。这种组合元素就被称为组件。组件就是一种可重用的元素。QML 提供了很多方法来创建组件。不过,这里我们只介绍一种方式:基于文件的组件。基于文件的组件将 QML 元素放置在一个单独的文件中,然后给这个文件一个名字。以后我们就可以通过这个名字来使用这个组件。例如,如果有一个文件名为 Button.qml,那么,我们就可以在 QM...原创 2018-04-08 16:24:11 · 5584 阅读 · 2 评论 -
QML入门教程:二、QML语法
1、QML 是一种声明语言,用于描述程序界面。 2、QML 将用户界面分解成一块块小的元素,每一元素都由很多组件构成。 3、QML 定义了用户界面元素的外观和行为;更复杂的逻辑则可以结合 JavaScript 脚本实现。这有点类似于 HTML 和 JavaScript 的关系,前者用来显示界面,后者用来定义行为。 4、QML 最简单的元素关系是层次关系。子元素处于相对...原创 2018-04-08 13:39:30 · 14766 阅读 · 10 评论 -
QML入门教程:三、QML基本元素
QML 基本元素可以分为可视元素和不可视元素两类。可视元素(例如前面提到过的Rectangle)具有几何坐标,会在屏幕上占据一块显示区域。不可视元素(例如 Timer)通常提供一种功能,这些功能可以作用于可视元素。 这里我们将会集中介绍最基本的可视元素:Item、Rectangle、Text、Image 和MouseArea。 1、Item Item是所有可视元素中最基本的一个。它是所有...原创 2018-04-08 14:37:42 · 6789 阅读 · 1 评论 -
QML进阶教程:三、动画分组(Grouped Animations)
前言:如果想同时运行几个动画并把他们连接起来,或者在一个一个的运行,或者在两个动画之间执行一个脚本。动画分组 提供了很好的帮助,有两种方法来分组:平行与连续。可以使用SequentialAnimation(连续动画) 和ParallelAnimation(平行动画) 来实现它们,它们作为动画的容器来包含其它的动画元素。 代码实例:import QtQuick 2.0It...原创 2018-04-16 11:57:47 · 1277 阅读 · 0 评论 -
QML进阶教程:二、缓冲曲线(Easing Curves)
前言:属性值的改变能够通过一个动画来控制,缓冲曲线属性影响了一个属性值改变的插值算法。在已经定义的动画都使用了一种线性的插值算法,因为一个动画的默认缓冲类型是Easing.Linear。在一个小场景下的x轴与y轴坐标改变可以得到最好 的视觉效果。一个线性插值算法将会在动画开始时使用from的值到动画结束时使用的to值绘制一条直线,所以缓冲类型定义了曲线的变化情况。 代码实例://...原创 2018-04-16 11:35:36 · 3489 阅读 · 0 评论 -
QML进阶教程:一、动画元素与应用
前言:QML中,动画被用于属性的改变。一个动画定义了属性值改变的曲线,将一个属性值变化从一个值过渡到另一个值。动画是由一连串的目标属性活动定义的,平缓的曲线算法能够引发一个定义时间内属性的持续变化。所有在QtQuick中的动画都由同一个计时器来控制,因此它们始终都保持同步,这也提高了动画的性能和显示效果。 动画控制了属性的改变,也就是值的插入。这是一个基本的概念,QML是基于元素,属性与脚本的...原创 2018-04-16 11:09:01 · 2684 阅读 · 1 评论