成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

剖析 QML 視圖 簡單易學

移動開發
本文介紹的是QML視圖,如果你了解QML,那么本文就好理解了,不了解的話,那么本文將會給你詳細的介紹!

QML視圖是本文要介紹的內容,在QML中提供了三種視圖方式:ListView列表視圖、GridView網格視圖和PathView路徑視圖。這三種視圖都是繼承自Flickable ,所以它們都有Flickable效果。下面我們簡單介紹一下ListView和PathView。

一、ListView列表視圖。

如果你了解Qt的模型視圖結構,那么這一節的內容就很好理解了,如果你沒接觸過,也沒關系,因為它其實很簡單。在Qt中我們要想利用視圖顯示一些數據,并不是將這些數據直接放到視圖中的,因為視圖只管顯示,它不存儲數據。我們的數據要放在數據模型中。但是數據模型中只是存放數據,它并不涉及數據的顯示方式。所以,我們還要用一個叫做代理的東東來設置數據模型中的數據怎樣在視圖中顯示。那么就構成了下面的關系。

 QML 視圖

我們先看下面的例子:

1、新建一個Qt QML Application工程,命名為“myView”。

2、我們更改代碼如下:

  1. import Qt 4.6  
  2. Rectangle {  
  3. width:200;height:200  
  4. ListModel{  //數據模型  
  5. id:listModel  
  6. ListElement{name:”Tom”;number:”001″}  
  7. ListElement{name:”John”;number:”002″}  
  8. ListElement{name:”Sum”;number:”003″}  
  9. }  
  10. Component{     //代理  
  11. id:delegate  
  12. Item{ id:wrapper; width:200; height:40  
  13. Column{  
  14. x:5; y:5  
  15. Text{text:”<b>Name:</b>”+name}  
  16. Text{text:”<b>Number:</b>”+number}  
  17. }  
  18. }  
  19. }  
  20. Component{   //高亮條  
  21. id:highlight  
  22. Rectangle{color:”lightsteelblue”;radius:5}  
  23. }  
  24. ListView{  //視圖  
  25. width:parent.width; height:parent.height  
  26. model:listModel  //關聯數據模型  
  27. delegate:delegate  //關聯代理  
  28. highlight:highlight  //關聯高亮條  
  29. focus:true  //可以獲得焦點,這樣就可以響應鍵盤了  
  30. }  

運行效果如下:

 QML 視圖

我們可以拖動整個列表,而且可以使用鍵盤的方向鍵來選擇列表中的項目。

在這個程序中,我們先設置了數據模型,在其中加入了一些數據。然后設置了代理,在代理中我們設置了要怎樣顯示我們的數據。***,我們在視圖中關聯了數據模型和代理,將數據顯示出來了。這里為了達到更好的顯示效果,我們使用了一個高亮條。其中的代理和高亮條都可以使用Component{}組件來實現。

3.我們可以對視圖做一些設置。

我們可以設置keyNavigationWraps:true 使到達***一個項目后重新返回***個項目。

我們可以設置orientation:ListView.Horizontal使列表水平顯示。這時你拖動列表,發現了吧,它可以自動移動到下一條,這就是Flickable的作用。默認的是ListView.Vertical豎直顯示。

#p#

二、PathView路徑視圖

1.什么是路徑視圖,我們先來看一個例子。

  1. Rectangle {  
  2. width:300;height:300;  
  3. ListModel{  //數據模型  
  4. id:listModel  
  5. ListElement{icon:”01.gif”}  
  6. ListElement{icon:”02.gif”}  
  7. ListElement{icon:”03.gif”}  
  8. ListElement{icon:”04.gif”}  
  9. }  
  10. Component{     //代理  
  11. id:delegate  
  12. Item{ id:wrapper; width:50; height:50  
  13. Column{  
  14. Image {source:icon;width:50;height:50}  
  15. }  
  16. }  
  17. }  
  18. PathView{  //路徑視圖  
  19. anchors.fill:parent; model:listModel; delegate:delegate  
  20. path:Path{startX:120;startY:200  
  21. PathQuad{x:120;y:25;controlX:260;controlY:125}  
  22. PathQuad{x:120;y:200;controlX:-20;controlY:125}  
  23. }  
  24. }  

效果如下:

 QML 視圖

你可以拖動一個圖標查看效果,是的,所有圖標的轉起來了。這就是路徑視圖。我們在程序中,設置了一個路徑,如上面的:

  1. path:Path{startX:120;startY:200  
  2. PathQuad{x:120;y:25;controlX:260;controlY:125}  
  3. PathQuad{x:120;y:200;controlX:-20;controlY:125}  

它們確定了一個橢圓形,所有的項目都在這個路徑上,當拖動一個項目,所有的項目都會在路徑上移動。

2、關于Path

在QML中提供了三種Path。PathLine直線,PathQuad二次貝塞爾曲線,PathCubic三次貝塞爾曲線。你可以在幫助中查看它們的使用,這里不再進行過多介紹。

3、路徑屬性。

我們可以通過路徑屬性PathAttribute ,來設置不同路徑上不同位置的項目。

例如我們更改上面的程序:

  1. Component{     //代理  
  2. id:delegate  
  3. Item{ id:wrapper; width:50; height:50  
  4. scale:PathView.scale; opacity:PathView.opacity  
  5. Column{  
  6. Image {source:icon;width:50;height:50}  
  7. }  
  8. }  
  9. }  
  10. PathView{  
  11. anchors.fill:parent; model:listModel; delegate:delegate  
  12. path:Path{startX:120;startY:200  
  13. PathAttribute{name:”scale”;value:1.0}  
  14. PathAttribute{name:”opacity”;value:1.0}  
  15. PathQuad{x:120;y:25;controlX:260;controlY:125}  
  16. PathAttribute{name:”scale”;value:0.5}  
  17. PathAttribute{name:”opacity”;value:0.5}  
  18. PathQuad{x:120;y:200;controlX:-20;controlY:125}  
  19. }  
  20. }  

效果如下:

 QML 視圖

我們在Path中設置了路徑屬性,使得在不同點的圖片具有不同的效果,這里設置了縮放和不透明度兩個屬性。我們只需設置開始點和結束點兩個點的屬性,這樣就會在整個路徑上進行線性插值。這一節介紹了兩個視圖,還有一個GridView網格視圖,它的操作是相似的,在這里就不再進行介紹了。

本文章原創于 www.yafeilinux.com

小結:剖析 QML 視圖的內容介紹完了,希望本篇文章對你有所幫助!更多內容請參考編輯推薦!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2010-02-01 14:37:44

PythonWin模塊

2011-06-10 11:05:05

Qt Quick QML

2010-05-18 18:09:41

IIS Lockdow

2010-04-15 11:38:23

配置無線局域網

2010-05-20 16:09:07

優化IIS

2022-09-14 10:50:36

npm代碼前端

2010-06-11 16:27:47

UML視圖

2010-07-05 15:26:03

UML九種視圖

2010-02-24 17:54:02

2010-03-05 09:49:34

Python文件操作

2009-08-27 16:29:18

C#動態編譯

2009-11-17 16:47:09

Oracle物化視圖日

2009-08-28 11:16:51

C#日期型數

2009-10-19 18:01:35

Linux磁盤分區

2010-05-13 15:38:19

Subversion

2013-06-14 13:50:28

iOS開發移動開發警告視圖

2011-09-04 09:54:46

筆記本技巧

2009-12-23 16:05:47

ADO.NET錯誤

2010-05-19 12:41:32

Subversion

2017-03-16 17:40:05

Linux架構運維
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 特级毛片| 国产高清精品一区二区三区 | 婷婷色成人 | 黄色一级大片视频 | 日韩欧美一区二区三区免费观看 | 操网站 | 伊人伊人伊人 | 国产色网站 | 久操亚洲 | 国产精品69毛片高清亚洲 | 97视频免费 | 青青草国产在线观看 | 欧美一级高清片 | 国产精品美女久久久久久免费 | 91国产视频在线 | 91精品入口蜜桃 | 国内自拍第一页 | 亚洲精品一区二三区不卡 | 日本免费一区二区三区视频 | 国产精品欧美一区二区三区 | 91亚洲精品国偷拍自产在线观看 | 日韩高清一区 | 日韩中文一区二区三区 | 成人做爰www免费看视频网站 | 亚欧洲精品在线视频免费观看 | 精品国产欧美一区二区三区成人 | 日韩成人免费 | 91天堂| 少妇一区在线观看 | 韩日在线视频 | 国产在线观看免费 | 视频精品一区二区三区 | h视频在线免费 | 中文字幕在线一区二区三区 | 9久久婷婷国产综合精品性色 | 天天狠狠 | 户外露出一区二区三区 | 日韩精品a在线观看图片 | 91一区二区三区 | 成人免费视频观看视频 | 五月天综合影院 |