偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

剖析 QML 視圖 簡(jiǎn)單易學(xué)

移動(dòng)開發(fā)
本文介紹的是QML視圖,如果你了解QML,那么本文就好理解了,不了解的話,那么本文將會(huì)給你詳細(xì)的介紹!

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

一、ListView列表視圖。

如果你了解Qt的模型視圖結(jié)構(gòu),那么這一節(jié)的內(nèi)容就很好理解了,如果你沒接觸過,也沒關(guān)系,因?yàn)樗鋵?shí)很簡(jiǎn)單。在Qt中我們要想利用視圖顯示一些數(shù)據(jù),并不是將這些數(shù)據(jù)直接放到視圖中的,因?yàn)橐晥D只管顯示,它不存儲(chǔ)數(shù)據(jù)。我們的數(shù)據(jù)要放在數(shù)據(jù)模型中。但是數(shù)據(jù)模型中只是存放數(shù)據(jù),它并不涉及數(shù)據(jù)的顯示方式。所以,我們還要用一個(gè)叫做代理的東東來設(shè)置數(shù)據(jù)模型中的數(shù)據(jù)怎樣在視圖中顯示。那么就構(gòu)成了下面的關(guān)系。

 QML 視圖

我們先看下面的例子:

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

2、我們更改代碼如下:

  1. import Qt 4.6  
  2. Rectangle {  
  3. width:200;height:200  
  4. ListModel{  //數(shù)據(jù)模型  
  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  //關(guān)聯(lián)數(shù)據(jù)模型  
  27. delegate:delegate  //關(guān)聯(lián)代理  
  28. highlight:highlight  //關(guān)聯(lián)高亮條  
  29. focus:true  //可以獲得焦點(diǎn),這樣就可以響應(yīng)鍵盤了  
  30. }  

運(yùn)行效果如下:

 QML 視圖

我們可以拖動(dòng)整個(gè)列表,而且可以使用鍵盤的方向鍵來選擇列表中的項(xiàng)目。

在這個(gè)程序中,我們先設(shè)置了數(shù)據(jù)模型,在其中加入了一些數(shù)據(jù)。然后設(shè)置了代理,在代理中我們?cè)O(shè)置了要怎樣顯示我們的數(shù)據(jù)。***,我們?cè)谝晥D中關(guān)聯(lián)了數(shù)據(jù)模型和代理,將數(shù)據(jù)顯示出來了。這里為了達(dá)到更好的顯示效果,我們使用了一個(gè)高亮條。其中的代理和高亮條都可以使用Component{}組件來實(shí)現(xiàn)。

3.我們可以對(duì)視圖做一些設(shè)置。

我們可以設(shè)置keyNavigationWraps:true 使到達(dá)***一個(gè)項(xiàng)目后重新返回***個(gè)項(xiàng)目。

我們可以設(shè)置orientation:ListView.Horizontal使列表水平顯示。這時(shí)你拖動(dòng)列表,發(fā)現(xiàn)了吧,它可以自動(dòng)移動(dòng)到下一條,這就是Flickable的作用。默認(rèn)的是ListView.Vertical豎直顯示。

#p#

二、PathView路徑視圖

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

  1. Rectangle {  
  2. width:300;height:300;  
  3. ListModel{  //數(shù)據(jù)模型  
  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 視圖

你可以拖動(dòng)一個(gè)圖標(biāo)查看效果,是的,所有圖標(biāo)的轉(zhuǎn)起來了。這就是路徑視圖。我們?cè)诔绦蛑校O(shè)置了一個(gè)路徑,如上面的:

  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}  

它們確定了一個(gè)橢圓形,所有的項(xiàng)目都在這個(gè)路徑上,當(dāng)拖動(dòng)一個(gè)項(xiàng)目,所有的項(xiàng)目都會(huì)在路徑上移動(dòng)。

2、關(guān)于Path

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

3、路徑屬性。

我們可以通過路徑屬性PathAttribute ,來設(shè)置不同路徑上不同位置的項(xiàng)目。

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

  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 視圖

我們?cè)赑ath中設(shè)置了路徑屬性,使得在不同點(diǎn)的圖片具有不同的效果,這里設(shè)置了縮放和不透明度兩個(gè)屬性。我們只需設(shè)置開始點(diǎn)和結(jié)束點(diǎn)兩個(gè)點(diǎn)的屬性,這樣就會(huì)在整個(gè)路徑上進(jìn)行線性插值。這一節(jié)介紹了兩個(gè)視圖,還有一個(gè)GridView網(wǎng)格視圖,它的操作是相似的,在這里就不再進(jìn)行介紹了。

本文章原創(chuàng)于 www.yafeilinux.com

小結(jié):剖析 QML 視圖的內(nèi)容介紹完了,希望本篇文章對(duì)你有所幫助!更多內(nèi)容請(qǐng)參考編輯推薦!

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

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

配置無線局域網(wǎng)

2010-05-20 16:09:07

優(yōu)化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#動(dòng)態(tài)編譯

2009-11-17 16:47:09

Oracle物化視圖日

2009-08-28 11:16:51

C#日期型數(shù)

2009-10-19 18:01:35

Linux磁盤分區(qū)

2010-05-13 15:38:19

Subversion

2013-06-14 13:50:28

iOS開發(fā)移動(dòng)開發(fā)警告視圖

2011-09-04 09:54:46

筆記本技巧

2009-12-23 16:05:47

ADO.NET錯(cuò)誤

2010-05-19 12:41:32

Subversion

2017-03-16 17:40:05

Linux架構(gòu)運(yùn)維
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)