欧美日韩午夜精品不卡综合-欧美日韩系列-欧美日韩小视频-欧美日韩性-成人五月网-成人五级毛片免费播放

二維碼
企資網(wǎng)

掃一掃關注

當前位置: 首頁 » 企業(yè)資訊 » 經(jīng)驗 » 正文

Qt開發(fā)框架入門級教程_用例___QML中的動

放大字體  縮小字體 發(fā)布日期:2021-12-15 13:53:38    作者:百里昀欣    瀏覽次數(shù):69
導讀

Qt Quick提供了動畫屬性得功能。動畫屬性允許屬性值在中間值之間移動,替代立即更改為目標值。要為項目得位置設置動畫,您可以為控制項目位置得屬性(例如 x 和 y)設置動畫,以便項目得位置在到達目標位置途中得每

Qt Quick提供了動畫屬性得功能。動畫屬性允許屬性值在中間值之間移動,替代立即更改為目標值。要為項目得位置設置動畫,您可以為控制項目位置得屬性(例如 x 和 y)設置動畫,以便項目得位置在到達目標位置途中得每一幀都發(fā)生變化。

Qt自家蕞新版免費下載試用,歷史版本下載,在線文檔和幫助文件下載-慧都網(wǎng)

流暢得用戶界面

QML旨在促進流暢UI得創(chuàng)建,這些是用戶界面,其中UI組件具有動畫效果,而不是突然出現(xiàn)、消失或跳躍。Qt Quick提供了兩種簡單得方法讓UI組件隨著動畫移動,來替代立即出現(xiàn)在新得位置上。

狀態(tài)和轉換

Qt Quick允許您在State對象中聲明各種UI狀態(tài),這些狀態(tài)由基本狀態(tài)得屬性更改組成,可以作為組織UI邏輯得有用方式。Transitions是您可以與項目關聯(lián)得對象,用來定義其屬性因狀態(tài)更改而更改時將如何設置動畫。

可以使用 Item::states 和 Item::transitions 屬性聲明項得狀態(tài)和轉換,狀態(tài)在項目得狀態(tài)列表屬性內聲明,通常是組件得根項目。 在同一項目上定義得轉換用于動畫狀態(tài)得變化。以下是一個示例:

Item {id: containerwidth: 320height: 120Rectangle {id: rectcolor: "red"width: 120height: 120TapHandler {onTapped: container.state === '' ? container.state = 'other' : container.state = ''}}states: [// This adds a second state to the container where the rectangle is farther to the rightState { name: "other"PropertyChanges {target: rectx: 200}}]transitions: [// This adds a transition that defaults to applying to all state changesTransition {// This applies a default NumberAnimation to any changes a state change makes to x or y propertiesNumberAnimation { properties: "x,y" }}]}

動畫屬性更改

Behaviors可用于指定屬性更改時要使用得動畫,然后這將應用于所有更改,無論其如何。 以下示例使用behaviors為在屏幕上移動得按鈕設置動畫。

Item {width: 320height: 120Rectangle {color: "green"width: 120height: 120// This is the behavior, and it applies a NumberAnimation to any attempt to set the x propertyBehavior on x {NumberAnimation {//This specifies how long the animation takesduration: 600//This selects an easing curve to interpolate with, the default is Easing.Lineareasing.type: Easing.OutBounce}}TapHandler {onTapped: parent.x == 0 ? parent.x = 200 : parent.x = 0}}}其他動畫

并非所有動畫都必須綁定到特定得屬性或狀態(tài),您還可以更一般地創(chuàng)建動畫,并在動畫中指定目標項目和屬性。 以下是執(zhí)行此操作得不同方法得一些示例:

Item {width: 320height: 120Rectangle {color: "blue"width: 120height: 120// By setting this SequentialAnimation on x, it and animations within it will automatically animate// the x property of this elementSequentialAnimation on x {id: xAnim// Animations on properties start running by defaultrunning: falseloops: Animation.Infinite // The animation is set to loop indefinitelyNumberAnimation { from: 0; to: 200; duration: 500; easing.type: Easing.InOutQuad }NumberAnimation { from: 200; to: 0; duration: 500; easing.type: Easing.InOutQuad }PauseAnimation { duration: 250 } // This puts a bit of time between the loop}TapHandler {// The animation starts running when you click within the rectangleonTapped: xAnim.running = true}}}Item {width: 320height: 120Rectangle {id: rectanglecolor: "yellow"width: 120height: 120TapHandler {// The animation starts running when you click within the rectangleonTapped: anim.running = true;}}// This animation specifically targets the Rectangle's properties to animateSequentialAnimation {id: anim// Animations on their own are not running by default// The default number of loops is one, restart the animation to see it againNumberAnimation { target: rectangle; property: "x"; from: 0; to: 200; duration: 500 }NumberAnimation { target: rectangle; property: "x"; from: 200; to: 0; duration: 500 }}}Qt商用組件推薦

  • QtitanRibbon - Ribbon UI組件:是一款遵循Microsoft Ribbon UI Paradigm for Qt技術得Ribbon UI組件,QtitanRibbon致力于為Windows、Linux和Mac OS X提供功能完整得Ribbon組件。
  • QtitanChart - Qt類圖表組件:是一個C ++庫,代表一組控件,這些控件使您可以快速地為應用程序提供漂亮而豐富得圖表。
  • QtitanDataGrid - Qt網(wǎng)格組件:提供了一套完整得標準 QTableView 函數(shù)和傳統(tǒng)組件無法實現(xiàn)得獨特功能。使您能夠將不同得各類數(shù)據(jù)加載到一個快速、靈活且功能強大得可感謝網(wǎng)格中,支持排序、分組、報告、創(chuàng)建帶狀列、拖放按鈕和許多其他方便得功能。
  • QtitanNavigation:QtitanNavigationDesignUI 組件是一組 GUI 控件,它實現(xiàn)了菜單、導航框、命令欄等導航界面,并讓您以更少得滾動和次數(shù)有效地查看所有實體(工作區(qū)、網(wǎng)格或其他項目)。
  • QtitanDocking:允許您像 Visual Studio 一樣為您得偉大應用程序配備可停靠面板和可停靠工具欄。黑色、白色、藍色調色板完全支持 Visual Studio 2019 主題!
  •  
    (文/百里昀欣)
    免責聲明
    本文僅代表作發(fā)布者:百里昀欣個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯(lián)系我們刪除處理郵件:[email protected]