精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解 Qt Quick 開始使用QML編程

移動開發
本文介紹的是Qt Quick 開始使用QML編程,又開始接觸Qt Quick,不說這么多,本文又詳細介紹。先來看本文。

本文介紹的是Qt Quick 開始使用QML編程,剛才說又接觸Qt Quick,那么簡單的介紹以下,本文Qt Quick包含了一個名為QML的聲明式語言、Qt Declarative模塊和QML Viewer,先來看本文內容。

Getting Started Programming with QML

歡迎來到QML——這個聲明式語言的世界!在這節入門指南里,我們將使用QML創建一個簡單的文本編輯器程序。讀完此節,你應該能做好使用QML和Qt C++開發自己的應用程序的準備了。

Installation

首先,你需要安裝包含Qt 4.7,這個包含了Qt Quick的最新的Qt版本。(譯注:現在是Qt 4.7.2)安裝指南包含了安裝介紹以及不同平臺的安裝要求。 

QML to Build User Interfaces

我們要制作的這個程序是個用來加載、保存以及執行一些文本操作的簡單的文本編輯器。本指南包含兩部分。第一部分包含使用QML中的生命語言來設計程序的布局和行為。使用Qt的Meta-Object-System,我們可以將C++函數暴露為QML元素使用的屬性。使用QML和Qt C++,我們可以有效的將應用程序邏輯和界面邏輯解耦合。

詳解 Qt Quick 開始使用QML編程

最終源碼在examples/tutorials/gettingStarted/gsQml目錄下. 你或許要先編譯一下examples/tutorials/gettingStarted/gsQml/下的C++插件. 編譯完后,這個插件會存放在QML文件可以找到的一個目錄下。(譯注:編譯成功后,會在examples/tutorials/gettingStarted/gsQml/plugins/目錄下生成FileDialog.dll。)

只需要將QML文件作為qmlviewer的一個參數,就可以運行這個文本編輯器了。本教程的C++部分假設讀者具備Qt編譯過程的基本知識。

定義一個按鈕和一個菜單

基本組件: 一個按鈕

我們先從生成一個按鈕開始。功能上來說,一個按鈕有一個鼠標敏感性區域和一個標簽。當用戶按下,按鈕執行動作。

QML中,基本的可視item是Rectangle元素。它有一些可以控制其外觀和位置的屬性。

  1. Codeimport QtQuick 1.0  
  2.  
  3.  Rectangle {  
  4.      id: simplebutton  
  5.      color: "grey"  
  6.      width: 150; height: 75  
  7.  
  8.      Text{  
  9.          id: buttonLabel  
  10.          anchors.centerIn: parent  
  11.          text: "button label"  
  12.      }  
  13.  } 

首先import QtQuick 1.0允許qmlviewer導入我們后來會用到的QML元素。每一個QML文件都必須有這行。注意,import語句中包含了Qt模塊的版本。

這個簡單的矩形有一個唯一的標識符,simplebutton,綁定到id屬性上。羅列出矩形元素的屬性,后跟冒號和值,可以將值綁定到對應的屬性上。實例中,grey綁定到了color屬性上。同樣地,也綁定了矩形的widht和height。

Text元素是不可編輯的文本域。我們將它命名為buttonLabel。將值綁定到text屬性,可以設置文本域的字符串內容。標簽包含在矩形中,為了將其置于中間,我們將Text元素的anchors賦給它的parent,即simplebutton。anchors可能綁定到其他anchors上,從而更方便地分配布局。

我們將代碼保存為SimpleButton.qml。將這個文件作為參數傳給qmlviewer,就會顯示出一個帶文本標簽的灰色矩形。

詳解 Qt Quick 開始使用QML編程

我們可以使用QML的事件處理來實現按鈕的點擊功能。QML的事件處理與Qt的signal slot機制非常類似。發出signals,連接到的slots就被調用。

  1. CodeRectangle{  
  2.      id:simplebutton  
  3.      ...  
  4.      MouseArea{  
  5.          id: buttonMouseArea  
  6.  
  7.          anchors.fill: parent //anchor all sides of the mouse area to the rectangle's anchors  
  8.                  //onClicked handles valid mouse button clicks  
  9.          onClicked: console.log(buttonLabel.text + " clicked" )  
  10.      }  
  11.  }  

我們在simplebutton中包含了一個MouseArea元素。它描述了可以檢測到鼠標移動的互動區域。對我們的按鈕,我們將整個MouseArea的anchors設置為它的parent,simplebutton。語法anchors.fill是訪問anchors屬性集中的特定的fill屬性的一種方式。QML使用基于anchor的布局,一個item可以anchor到另外一個上,創建健壯的布局。

鼠標在 這個特定的MouseArea邊界內移動時,MouseArea可以調用很多signal handlers。其中一個是onClicked,當可接受的鼠標按鈕被點下——默認是左邊的按鍵,這個signal handler就會被調到。我們可以綁定動作到這個handler上。在我們的例子中,當鼠標區域被按下時,console.log()會輸出文字。console.log()函數對調試和輸出文字來說,都是一個有用的工具。

在屏幕上顯示一個按鈕來,并在鼠標點擊時輸出文字,SimpleButton.qml中的代碼已經足夠了。

  1. CodeRectangle {  
  2.      id: button  
  3.      ...  
  4.      property color buttonColor: "lightblue"  
  5.      property color onHoverColor: "gold"  
  6.      property color borderColor: "white"  
  7.      signal buttonClick()  
  8.      onButtonClick: {  
  9.          console.log(buttonLabel.text + " clicked" )  
  10.      }  
  11.      MouseArea{  
  12.          onClicked: buttonClick()  
  13.          hoverEnabled: true  
  14.          onEntered: parent.border.color = onHoverColor 
  15.          onExited:  parent.border.color = borderColor 
  16.      }  
  17.      //determines the color of the button by using the conditional operator  
  18.      color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor  
  19.  }  

 Button.qml中是一個全功能的按鈕。本文中的代碼片段省略了一些代碼。這些代碼用省略號表示,它們要么已經在前面的章節中介紹過了,要么與現在討論的代碼無關。 可以使用屬性 類型名字的語法來聲明自定義屬性。代碼中,聲明的buttonColor ,是一個color類型的屬性,并綁定了值“lightblue“。buttonColor 后來用到一個條件運算中,決定按鈕的填充顏色。除了使用冒號將值綁定到屬性外,也可以使用等號賦值。自定義屬性可以被Rectangle范圍以外的內部items訪問到。
 
基本的QML類型有int、string,、real, 還有variant。 綁定onEntered和onExited signal handlers 到colors上,當鼠標在按鈕上懸停時,按鈕的邊界會變成黃色;當鼠標退出鼠標域時會變回原來的顏色。 把關鍵字signal 放到信號名字前面,Button.qml聲明了一個buttonClick() 信號。所有的信號都有自動生成的、名字以on開頭的handler。結果是,onButtonClick是buttonClick的handler。onButtonClick指定了要執行的操作。我們的例子中,onClicked只會調用onButtonClick來顯示文字。

onButtonClick讓外部的對象很容易地訪問到Button的鼠標區域。例如,items可能有多個MouseArea聲明,buttonClick信號可以更好地區分這幾個MouseArea的signal handlers之間。 在QML中實現item,并處理基本的鼠標移動,這樣的基本知識我們已經具備了。

我們在Rectangle中創建了aText標簽,自定義它的屬性,實現了響應鼠標移動的行為。在這個文本編輯器程序中,我們會不停地重復在一個元素里創建領一個元素。 只有被用作執行操作的組件,按鈕才有用處。在下面的章節中,我們很快就會創建一個菜單,包含幾個這樣的按鈕。

詳解 Qt Quick 開始使用QML編程

小結:詳解 Qt Quick 開始使用QML編程的內容介紹完了,希望本文能幫你解決問題,想要更多資料請參考編輯推薦!

責任編輯:zhaolei 來源: 網絡轉載
相關推薦

2011-06-20 13:23:03

Qt Quick QML

2011-06-10 11:05:05

Qt Quick QML

2013-09-22 10:15:01

Spring DataJPA

2019-09-30 10:51:11

Markdown標記語言

2011-03-11 14:43:41

Qt-QuickQML

2011-07-01 14:55:28

Qt QML C++

2017-08-25 14:29:43

機器學習Java

2021-02-14 10:05:54

PowerCLI虛擬化語言

2022-06-09 09:00:00

編程語言后端Dark

2011-05-16 14:12:30

QuickWidgetQML

2022-11-17 07:57:34

2020-03-25 09:53:33

人工智能AI技術

2019-12-23 13:20:34

LinuxLumina

2011-06-10 11:24:08

Qt Quick Designer

2024-05-24 10:01:12

2012-03-17 21:45:02

JavaScript

2017-06-27 14:58:21

備份數據庫Oracle

2018-05-09 20:08:09

人工智能深度學習Python

2011-06-24 15:30:22

QT 皮膚 QSS

2010-05-25 10:17:37

云計算
點贊
收藏

51CTO技術棧公眾號

日本中文字幕伦在线观看| 日本熟妇一区二区| 欧美黄色成人| 亚洲综合久久av| 久久一区二区三区av| 中文字幕一区二区久久人妻| 欧美在线免费| 亚洲美女免费精品视频在线观看| 99热这里只有精品在线播放| 亚洲男同gay网站| 久久中文娱乐网| 91亚洲va在线va天堂va国| 欧美一二三区视频| 五月激情综合| 亚洲欧美日韩在线高清直播| 在线观看中文av| 老司机成人影院| 一区二区三区日韩欧美| 日韩免费电影一区二区| 亚洲精品无码久久久| 日韩av电影天堂| 国产综合在线看| 国精品人伦一区二区三区蜜桃| 国内视频在线精品| 制服丝袜中文字幕一区| 少妇性l交大片| 91禁在线看| 一区二区三区四区五区视频在线观看 | 强行糟蹋人妻hd中文| 欧美视频网址| 亚洲女成人图区| 精品人妻一区二区三区日产| 国产专区精品| 欧美三级在线播放| 国产a级一级片| sis001亚洲原创区| 一区二区在线观看视频| 在线观看成人av电影| 国产免费a∨片在线观看不卡| 成人美女视频在线观看18| 91久久综合亚洲鲁鲁五月天| 中文字幕1区2区3区| 性高湖久久久久久久久| 午夜免费日韩视频| 9999热视频| 亚洲精品一区二区妖精| 自拍偷拍亚洲一区| 久久亚洲AV无码专区成人国产| 欧美顶级毛片在线播放| 精品av久久707| 欧美熟妇精品一区二区| 秋霞一区二区| 欧美变态凌虐bdsm| 两女双腿交缠激烈磨豆腐 | 91手机在线视频| 99热这里只有精品9| 久久99久久精品| 91视频-88av| 国产又粗又黄又爽视频| 久久成人免费电影| 91久久夜色精品国产网站| 91禁在线观看| 国产一区二区三区不卡在线观看| 国产色视频一区| 国产免费黄色大片| 国产精品一区二区在线播放| 99re国产| 手机av免费在线观看| 26uuu精品一区二区在线观看| 精品无人区一区二区三区竹菊| 婷婷在线免费观看| 久久嫩草精品久久久精品一| 日韩国产欧美精品| chinese偷拍一区二区三区| 亚洲国产精品99久久久久久久久 | 欧美性xxxxxx少妇| 无尽裸体动漫2d在线观看| 亚洲一区二区小说| 精品欧美一区二区三区精品久久| 美女伦理水蜜桃4| 亚洲传媒在线| 视频直播国产精品| 国产成人无码aa精品一区| 尤物精品在线| 国产成人综合亚洲| 国产又粗又猛又爽又黄视频 | 欧美四级电影网| 亚洲精品mv在线观看| 高清精品xnxxcom| 亚洲欧美综合另类中字| 91免费在线看片| 午夜久久黄色| 日本精品视频在线观看| 97国产精品久久久| caoporm超碰国产精品| 无遮挡亚洲一区| 青春草在线视频| 色婷婷综合久久久久中文一区二区 | 久草福利资源在线| av成人天堂| 国产欧美日韩丝袜精品一区| 亚洲欧美另类综合| 国产精品嫩草影院av蜜臀| av一区二区三区免费观看| 久久人体大尺度| 欧美xxxx在线观看| 色屁屁草草影院ccyy.com| 国产精品www.| 国产精品免费一区二区三区都可以| 99视频在线观看免费| 久久久久久免费| 国产天堂视频在线观看| 久久av影院| 日韩av在线网址| 欧美黄色aaa| 日韩影院免费视频| 国产欧美丝袜| 国产乱色在线观看| 欧洲人成人精品| 水蜜桃av无码| 欧美精品导航| 成人黄色在线播放| 精品久久av| 五月天激情综合| 精品人妻一区二区三| 欧美一二区在线观看| 69精品小视频| 老熟妇高潮一区二区高清视频| 国产精品乱子久久久久| 干日本少妇首页| y111111国产精品久久久| www.久久色.com| 亚洲第一区av| 国产午夜亚洲精品理论片色戒| 97干在线视频| 88久久精品| 欧美精品在线观看91| 一区二区三区www污污污网站| 久久精品一区二区三区av| 黄色一级片播放| 99热这里只有精品首页| 欧美日韩成人精品| 国产精品视频无码| 国产精品乱码一区二三区小蝌蚪| 国产成人手机视频| 少妇一区二区视频| 国产精品av在线播放| 欧美色18zzzzxxxxx| 亚洲成人激情av| 污污免费在线观看| 亚洲欧洲一区二区天堂久久| 国产久一道中文一区| 2020日本在线视频中文字幕| 亚洲成色777777在线观看影院| 欧美人与禽zozzo禽性配| 久久精品国产77777蜜臀| 亚洲一区二区不卡视频| 四虎精品在线观看| 不卡av电影院| 亚洲AV无码精品色毛片浪潮| 亚洲在线视频免费观看| 亚洲一二三四五| 亚洲精选国产| 国产精品成人观看视频免费| av影院在线| 日韩精品视频免费专区在线播放 | 国产三级在线观看完整版| 久久亚洲风情| 亚洲看片网站| 国产一区二区三区视频在线| 欧美黄网免费在线观看| 少妇高潮久久久| 欧美日韩在线观看视频| 日韩毛片无码永久免费看| 免费国产亚洲视频| 91xxx视频| 老牛精品亚洲成av人片| 日韩免费av片在线观看| 日本三级在线视频| 欧美成人猛片aaaaaaa| 圆产精品久久久久久久久久久| 久久久不卡影院| 亚洲黄色片免费| 91久久综合| 亚欧精品在线| 综合激情久久| 国产精品v日韩精品| 欧美jizzhd欧美| 亚洲成人网在线| 中文字幕码精品视频网站| 怡红院av一区二区三区| 亚洲一区二区观看| 国内精品视频一区二区三区八戒| av日韩一区二区三区| 日本女优一区| 国产精品制服诱惑| 日韩成人在线一区| 97国产精品视频人人做人人爱| 久草福利在线视频| 日韩欧美在线观看一区二区三区| 久久久午夜影院| 亚洲私人影院在线观看| 免费看污黄网站在线观看| 国产一区在线视频| 中文字幕日本最新乱码视频| 国产精品久久久久久影院8一贰佰| 国产精品一 二 三| 精品乱码一区二区三区四区| 国a精品视频大全| 免费在线观看黄色| 亚洲人成电影网站色…| 成人黄色免费视频| 欧美日韩一区二区三区不卡| 日韩少妇高潮抽搐| 亚洲色图欧美激情| 国产毛片欧美毛片久久久| www.久久久久久久久| 爱豆国产剧免费观看大全剧苏畅| 午夜亚洲伦理| 久久99久久99精品| 欧美一区免费| 中文字幕剧情在线观看一区| 国产videos久久| 久久久久网址| 精品欠久久久中文字幕加勒比| 成人黄色在线播放| 成人一级视频| 97在线日本国产| 国产又色又爽又黄刺激在线视频| 色悠悠久久久久| 幼a在线观看| 在线观看久久av| 国产在线一二| 国产成人免费在线| 精品国产精品三级精品av网址| 国产精成人品免费观看| av激情综合网| 国产人妻精品午夜福利免费| 韩国成人福利片在线播放| 天天干在线影院| 老司机精品福利视频| 男人揉女人奶房视频60分| 亚洲国产专区校园欧美| 青青草视频国产| 中文字幕人成人乱码| 中文字幕第一页亚洲| 国产精品麻豆久久| 中文字幕av导航| 国产精品7m凸凹视频分类| 夜夜春亚洲嫩草影视日日摸夜夜添夜| av伊人久久| 亚洲欧洲三级| 天天色综合色| 永久免费网站视频在线观看| 牛牛国产精品| 男人添女荫道口喷水视频| 欧美色123| 国产在线播放观看| 在线一区欧美| 六月丁香婷婷在线| 日本麻豆一区二区三区视频| 四季av一区二区| 久久精品国产99久久6| 在线观看视频在线观看| 国产不卡视频一区二区三区| 丰满少妇xbxb毛片日本| 99精品欧美一区二区三区小说| 久久无码人妻精品一区二区三区| 91丝袜国产在线播放| 国产精品亚洲无码| 国产精品全国免费观看高清| 蜜臀av午夜精品久久| 一区二区免费在线| 天堂网一区二区三区| 91黄色免费观看| 国产精品毛片一区视频播 | 国产人成一区二区三区影院| 极品尤物一区二区| 亚洲激情图片一区| 欧美一级视频免费观看| 在线观看www91| 99热这里只有精品3| 亚洲国产精品国自产拍av秋霞| 久久久久久久久亚洲精品| 色伦专区97中文字幕| 人人超在线公开视频| 日本高清不卡的在线| 亚洲最大的免费视频网站| 国产伦理久久久| 波多野结衣一区| 国产在线视频综合| 美女久久一区| 久久精品亚洲天堂| 91偷拍与自偷拍精品| 欧美风情第一页| 欧美性xxxx极品高清hd直播| 国产乱码精品一区二区三区精东| 亚洲成人精品久久久| 在线视频婷婷| 亚洲18私人小影院| 日日夜夜亚洲精品| 久久99影院| 自拍日韩欧美| 男人女人黄一级| 成人h版在线观看| 亚洲av无一区二区三区| 狠狠色狠色综合曰曰| 国产夫妻性生活视频| 中文字幕日本精品| 黄毛片在线观看| 91精品久久久久久蜜桃| re久久精品视频| 日韩五码在线观看| 激情深爱一区二区| 人人人妻人人澡人人爽欧美一区| 亚洲一区二区三区美女| 亚洲无码精品国产| 精品偷拍一区二区三区在线看| 羞羞污视频在线观看| 国产欧美精品一区二区| 欧美人妖在线| 欧美啪啪免费视频| 国产99精品国产| 乱老熟女一区二区三区| 欧美亚洲综合在线| 免费在线超碰| 2019亚洲日韩新视频| 91麻豆精品激情在线观看最新| 亚洲一区三区视频在线观看| 久久久一二三| 无码人妻精品一区二区三区温州| 一区二区三区四区精品在线视频| 伊人精品在线视频| 国产亚洲精品成人av久久ww| 最新中文字幕在线播放| 精品久久久久久中文字幕动漫 | 国产嫩草在线观看| 久久久亚洲高清| 综合激情网五月| 亚洲精品国产欧美| 高清在线视频不卡| 国产乱码精品一区二区三区日韩精品 | 午夜国产福利一区二区| 欧美丰满嫩嫩电影| 日本高清视频在线播放| 国产精品直播网红| 日韩欧美国产精品综合嫩v| 国产一线二线三线在线观看| 久久久五月婷婷| 久久精品久久久久久久| 亚洲欧美精品伊人久久| 一呦二呦三呦精品国产| 午夜精品福利一区二区| 日本不卡不码高清免费观看| 日本猛少妇色xxxxx免费网站| 欧美视频三区在线播放| 91caoporn在线| 国产精品亚洲综合天堂夜夜| 日韩国产欧美| 免费网站在线观看黄| 亚洲欧美另类图片小说| 国产夫妻性生活视频| 久久久久成人网| 日韩mv欧美mv国产网站| 草草草在线视频| 国产精品你懂的在线| 国产ts人妖调教重口男| 欧美激情一区二区三级高清视频| 嗯用力啊快一点好舒服小柔久久| 成年女人18级毛片毛片免费| 不卡的av电影| 老熟妇仑乱一区二区av| 一区二区三区视频在线| 外国成人毛片| 成年人深夜视频| 久久久噜噜噜久久人人看| 在线观看亚洲国产| 欧美另类99xxxxx| 首页亚洲中字| 欧美激情第3页| 亚洲成a人片在线不卡一二三区| 三区在线视频| 国产区精品在线观看| 午夜日韩av| 9.1成人看片免费版| 欧美精品丝袜久久久中文字幕| 国产91足控脚交在线观看| 欧洲亚洲一区二区| 国产专区综合网| 国产又爽又黄的视频| 在线观看国产精品91| www.亚洲一二| 亚洲狼人综合干| 亚洲国产中文字幕在线视频综合| 毛片网站在线观看| 亚洲a在线播放| 亚洲综合国产| 永久看片925tv| 亚洲视频在线观看| 欧美成年网站|