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