翻譯|實施案例|編輯:鮑佳佳|2020-09-08 11:04:23.120|閱讀 655 次
概述:Qt是一個跨平臺框架,通常用作圖形工具包,它不僅創建CLI應用程序中也非常有用。本篇文章示例說明如何在系統UI中為窗口設置動畫以使其顯示和消失
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Qt是一個跨平臺框架,通常用作圖形工具包,它不僅創建CLI應用程序中也非常有用。而且它也可以在三種主要的臺式機操作系統以及移動操作系統(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式設備,Android(Necessitas)和iOS的端口上運行。現在我們為你提供了免費的試用版。趕快點擊下載Qt最新試用版吧>>
【同類產品推薦】
Windows系統UI動畫示例
了解如何為窗口設置動畫以使其顯示和消失。
介紹
本示例說明如何在系統UI中為窗口設置動畫以使其顯示和消失。
先決條件:您已經熟悉系統UI示例中“ Hello World”引入的概念和主題。
與“ Hello World ”示例不同,大多數圖形用戶界面(GUI)都會避免非常突然的變化,因為這會使用戶感到困惑以及視覺上不愉快。因此,當使用WindowManager創建一個新的WindowObject時,我們希望對其外觀進行動畫處理,而不是簡單地使其在屏幕上彈出。同樣,一旦WindowObject丟失其界面(由于應用程序關閉了該窗口或完全停止了該窗口并從WindowManager的模型中刪除了該界面),我們希望為其消失提供動畫效果,而不是突然消失。
如果使用的是ListView等現成的高級布局,則可以將Transitions分配給不同的操作,例如add,remove,displaced等,并繼續使用WindowManager作為模型。但是在許多情況下并非如此。相反,您必須創建自己的模型,例如ListModel,以便WindowObject僅在完成其委托的消失動畫后才離開模型。此示例展示了此技術。
Windows模型在本示例中,我們用來實例化窗口的模型是關鍵。
與其直接使用WindowManager作為我們的模型,我們使用一個普通的ListModel:
Repeater { { model: ListModel { { id: windowsModel }} delegate: Rectangle {{
我們只有在達到最終狀態后才從該模型中刪除WindowObject:WindowObject .NoSurface,并且不再顯示在屏幕上。任何狀態轉換都已經完成。
readonly property bool safeToRemove: fullyDisappeared && model.window && model.window.contentState === WindowObject.NoSurface onSafeToRemoveChanged: if (safeToRemove) windowsModel.remove(model.index, 1)
然后,我們向其中添加一個WindowObject,并在WindowManager創建WindowObject后立即在屏幕上顯示它。
Connections { { target: WindowManager function onWindowAdded(window) { window) { windowsModel.append({"window":"window":window}) }}
本篇文章中的內容你都學會了嗎?如果這篇文章沒能滿足你的需求、點擊獲取更多文章教程!現在立刻下載Qt免費試用吧!更多Qt類開發工具QtitanRibbon、QtitanChart、QtitanNavigation、QtitanDocking、QtitanDataGrid在線訂購現直降1000元,歡迎咨詢慧都獲取更多優惠>>
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: