分类:

Qt 学习之路 2

QML 只能运行在一个受限环境中,这是由于 QML 语言本身有一些限制。为了解决这一问题,我们可以使用 C++ 编写一些功能,供 QML 运行时调用。 为了能够利用 C++ 扩展 QML,首先我们需要理解 QML 的运行机制。 与 C++ 不同,QML 运行在自己的运行时环境中。这个运行时在 QtQml 模块,由 C++ 实现,包含一个负责执行 QML 的引擎,为每个组件保存可访问属性的上下文,以 ...

6 评论 2.6K 次阅读

对于很多应用程序,存储数据的能力是必须的。比如,你需要保存下用户设置的参数等。Qt/C++ 提供了强大的QSettings类,用于将用户数据保存在本地文件或操作系统提供的数据结构中(比如 Windows 的注册表)。但是,Qt Quick 只提供了有限的直接访问本地数据的能力。它没有提供像 C++ 那样,能够直接读写操作系统本地文件的功能,这有点类似于浏览器。因此,在很多应用中,读写文件只能通过 ...

7 评论 2.6K 次阅读

上一章我们介绍了粒子的旋转。粒子的旋转作用于每一个粒子,除此之外,我们还可以设置粒子轨迹的方向。轨迹取决于一个指定的向量空间,该向量空间定义了粒子的速度和加速度,以及一个随机的方向。QML 提供了三个不同的向量空间,用于定义粒子的速度和加速度: PointDirection:使用 x 和 y 值定义的方向 AngleDirection:使用角度定义的方向 TargetDirection:使用一个目 ...

5 评论 2.5K 次阅读

粒子系统是一种计算机图形学的技术,用于模拟一些特定的模糊现象,这些现象用传统的渲染技术难以达到一定的真实感。虽然名为“粒子”,但却可以模拟爆炸、烟、水流、落叶、云、雾、流星尾迹或其它发光轨迹这样的抽象视觉效果。粒子系统的特色是“模糊”,其渲染效果并非完全取决于像素,而是使用特定的边界参数描述随机粒子。幸运的是,使用 QML 可以很方便的实现粒子系统。

5 评论 2.4K 次阅读

变换 Canvas中的“变形”,主要指的是坐标系的变换,而不是路径的变换。这与 QML 元素变换非常相似,都可以实现坐标系统的scale(缩放)、rotate(旋转)和translate(平移);不同的是,变换的原点是画布原点。例如,如果以一个路径的中心点为定点进行缩放,那么,你需要现将画布原点移动到路径中心点。我们也可以使用变换函数实现复杂的变换。理解“变换是针对坐标系的”这一点非常重要,有时候 ...

8 评论 2.9K 次阅读

在 QML 刚刚被引入到 Qt 4 的那段时间,人们往往在讨论 Qt Quick 是不是需要一个椭圆组件。由此,人们又联想到,是不是还需要其它的形状?这种没玩没了的联想导致了一个最直接的结果:除了圆角矩形,Qt Quick 什么都没有提供,包括椭圆。如果你需要一个椭圆,那就找个图片,或者干脆自己用 C++ 写一个吧(反正 Qt Quick 是可以扩展的,不是么)! 为了使用脚本化的绘图机制,Qt ...

4 评论 2.4K 次阅读

Repeater适用于少量的静态数据集。但是在实际应用中,数据模型往往是非常复杂的,并且数量巨大。这种情况下,Repeater并不十分适合。于是,QtQuick 提供了两个专门的视图元素:ListView和GridView。这两个元素都继承自Flickable,因此允许用户在一个很大的数据集中进行移动。同时,ListView和GridView能够复用创建的代理,这意味着,ListView和Grid ...

20 评论 4K 次阅读

关于我

devbean

devbean

豆子,生于山东,定居南京。毕业于山东大学软件工程专业。软件工程师,主要关注于 Qt、Angular 等界面技术。

主题 Salodad 由 PenciDesign 提供 | 静态文件存储由又拍云存储提供 | 苏ICP备13027999号-2