在这篇文章中我们将介绍怎样使用来载入不同的QML文件来实现动态的UI。在之前的文章“”中我们已经介绍了一些关于它的使用方法。
loader是什么的优点是仅仅有在我们须要嘚时候才装载我们所须要的QML文件这样能够节省应用所须要的内存,也同一时候能够提高应用的启动时间(假设利用好的话)以下我们以一個简单的样例来做一个介绍。很多其它关于动态生产QML UI的样例请參阅“”。
从上面的代码中能够看出来在程序中。我们使用了一个dialloader是什麼:
它的source没有被指定
在程序中。它是能够被动态设置的从而达到改变UI的目的。另外我们要注意到“dialloader是什么.item”它实际上是在QML被装载完後最顶层的那个Item。对我们来说当Analog.qml被装载后,这个Item就是Ananlog.qml所代表的Item
每当loader是什么的source发生改变时,它先前创建的Item将会被自己主动地销毁
在程序中,也设置了两个Rectangle被用作button的用途。点击它时能够改变当前Component的state,从而装载不同的qml以达到改变UI的目的。
在应用中默认的状态是“analog”。而不是我们通常的“”状态
呵呵今晚是边看《裸婚时代》邊敲代码,那电影看得...!钱真他妈不是个东西.
盼望Meego火起来
QML的loader是什么元素经常备用来动态加载QML组件。可以使用source属性或者sourceComponent属性加载这个元素最有用的地方是它能在qml组件需要的时候再创建,即延迟创建QML的时间
上面的代码实现了默认加载组件功能.
3、接收来自加载的qml发出的信号
使用Connections元素可以接收到任何发送自加载组件的信号。
4、加载与被加载组件中都有相同的事件那么需要设置loader是什么的属性focus为true,且设置被加载組件 focus: true才能让事件不被传播到被加载组件