窗口伸縮效果的實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式開發(fā)領(lǐng)域,尤其涉及一種基于Qt的圖形界面開發(fā)中窗口伸縮效果的實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]Qt是一個(gè)1991年由奇趣科技開發(fā)的跨平臺C++圖形用戶界面應(yīng)用程序開發(fā)框架。它既可以開發(fā)⑶I程序,也可用于開發(fā)非⑶I程序,比如控制臺工具和服務(wù)器。Qt是面向?qū)ο蟮目蚣?,使用特殊的代碼生成擴(kuò)展(稱為元對象編譯器(Meta Object Compiler, moc))以及一些宏,易于擴(kuò)展,允許組件編程。2008年,奇趣科技被諾基亞公司收購,QT也因此成為諾基亞旗下的編程語言工具。2012年,Qt被Digia收購。2014年4月,跨平臺集成開發(fā)環(huán)境Qt Creator 3.1.0正式發(fā)布,實(shí)現(xiàn)了對于1S的完全支持,新增WinRT、Beautif ier等插件,廢棄了無Python接口的GDB調(diào)試支持,集成了基于Clang的C/C++代碼模塊,并對Android支持做出了調(diào)整,至此實(shí)現(xiàn)了全面支持1S、Android、WP。
[0003]在多窗口界面設(shè)計(jì)中,需要時(shí)刻關(guān)心或?qū)崟r(shí)觀測的窗口應(yīng)當(dāng)常態(tài)顯示,其余輔助窗口由于顯示空間有限或出于布局美觀的考慮而無需常態(tài)顯示。以往對于這些輔助窗口多采用整屏切換集中顯示,增加了過多的顯示頁面且顯示空間利用率不高,既不合理又不美觀。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題是如何解決多輔助窗口整屏切換機(jī)種顯示的顯示空間利用率不高的問題。
[0005]為了解決這一技術(shù)問題,本發(fā)明提供了一種窗口伸縮效果的實(shí)現(xiàn)方法,包括如下步驟:
[0006]S1:創(chuàng)建至少一個(gè)自定義窗口類,并為其添加用于窗口創(chuàng)建的成員函數(shù),從而創(chuàng)建位于一可伸展開可收縮起的窗口上的一個(gè)標(biāo)題欄;
[0007]S2:響應(yīng)其中之一所述標(biāo)題欄的鼠標(biāo)點(diǎn)擊輸入,所述窗口逐漸伸展開,直至窗口內(nèi)容全部展示;
[0008]S3:響應(yīng)該標(biāo)題欄的鼠標(biāo)的再次點(diǎn)擊輸入,所述窗口逐漸收縮起,直至窗口內(nèi)容被所述標(biāo)題欄覆蓋。
[0009]可選的,在所述步驟SI中還包括建立事件濾波器;
[0010]所述事件濾波器用以,在所述步驟S2與S3中判斷鼠標(biāo)的點(diǎn)擊輸入是否符合預(yù)設(shè)的規(guī)則,若符合,才響應(yīng)所述標(biāo)題欄的鼠標(biāo)點(diǎn)擊輸入和再次點(diǎn)擊輸入。
[0011]可選的,在所述步驟SI中還包括建立定時(shí)器和超時(shí)處理模塊;
[0012]在所述步驟S2中,響應(yīng)所述標(biāo)題欄的鼠標(biāo)點(diǎn)擊輸入,所述定時(shí)器被啟動,從而使得所述超時(shí)處理模塊控制所述窗口逐漸伸展開,直至窗口內(nèi)容全部展示;
[0013]在所述步驟S3中,響應(yīng)所述標(biāo)題欄的鼠標(biāo)的再次點(diǎn)擊輸入,所述定時(shí)器再次被啟動,從而使得所述超時(shí)處理模塊控制所述窗口逐漸收縮起,直至窗口內(nèi)容被所述標(biāo)題欄覆至
ΠΠ O
[0014]可選的,在所述步驟S2中,所述窗口伸展開至窗口內(nèi)容全部展示的時(shí)間由預(yù)設(shè)在所述定時(shí)器中的超時(shí)時(shí)間來確定;
[0015]在所述步驟S3中,所述窗口收縮起至窗口內(nèi)容被所述標(biāo)題欄覆蓋的時(shí)間也由預(yù)設(shè)在所述定時(shí)器中的超時(shí)時(shí)間來確定。
[0016]可選的,所述標(biāo)題欄位于伸展開后窗口的上端位置;在所述步驟S2中,所述窗口向下逐漸伸展開;在所述步驟S3中,所述窗口向上逐漸收縮起。
[0017]可選的,所述標(biāo)題欄位于伸展開后窗口的左側(cè)位置;在所述步驟S2中,所述窗口向右逐漸伸展開;在所述步驟S3中,所述窗口向左逐漸收縮起。
[0018]可選的,所述標(biāo)題欄采用QLabel控件。
[0019]可選的,在所述步驟SI中,基于QFrame創(chuàng)建所述自定義窗口類。
[0020]可選的,在所述步驟SI中,所述成員函數(shù)為create成員函數(shù)。
[0021]本發(fā)明引入了標(biāo)題欄,相應(yīng)的輔助窗口與該標(biāo)題欄匹配,可以將待顯示的信息隱藏在窗口中,需要顯示時(shí),通過對標(biāo)題欄的點(diǎn)擊操作,使得該窗口彈出,不需要顯示時(shí),再次點(diǎn)擊操作,該窗口又可收回,有效節(jié)約了顯示空間,也使得界面效果變得生動。
【附圖說明】
[0022]圖1是本發(fā)明一實(shí)施例提供的窗口伸縮效果的實(shí)現(xiàn)方法的原理流程示意圖;
[0023]圖2是本發(fā)明一實(shí)施例中具體的窗口伸縮效果的實(shí)現(xiàn)方法的流程示意圖。
【具體實(shí)施方式】
[0024]以下將結(jié)合圖1和圖2對本發(fā)明提供的窗口伸縮效果的實(shí)現(xiàn)方法進(jìn)行詳細(xì)的闡述,其為本發(fā)明可選的實(shí)施例,可以認(rèn)為,本領(lǐng)域的技術(shù)人員在不改變本發(fā)明精神和內(nèi)容的范圍內(nèi)能夠?qū)ζ溥M(jìn)行修改和潤色。
[0025]請參考圖1和圖2,本實(shí)施例提供了一種窗口伸縮效果的實(shí)現(xiàn)方法,包括如下步驟:
[0026]S1:創(chuàng)建至少一個(gè)自定義窗口類,并為其添加用于窗口創(chuàng)建的成員函數(shù),從而創(chuàng)建位于一可伸展開可收縮起的窗口上的一個(gè)標(biāo)題欄;
[0027]在所述步驟SI中還包括建立事件濾波器;
[0028]在所述步驟SI中還包括建立定時(shí)器和超時(shí)處理模塊;
[0029]在所述步驟SI中,基于QFrame創(chuàng)建所述自定義窗口類。
[0030]在所述步驟SI中,所述成員函數(shù)為create成員函數(shù)。
[0031]換言之,本實(shí)施例中,在步驟SI中,基于QFrame創(chuàng)建一個(gè)自定義窗口類,為其添加用于窗口創(chuàng)建的create成員函數(shù),在create中創(chuàng)建一個(gè)標(biāo)題欄并建立一個(gè)定時(shí)器和事件濾波器,通過“信號/槽”機(jī)制將定時(shí)器的超時(shí)timeout O和超時(shí)處理timer_event O進(jìn)行連接,通過instal IEventFi I ter O安裝事件濾波器;利用事件濾波器的eventFilter O判斷標(biāo)題欄的鼠標(biāo)按鍵事件;
[0032]S2:響應(yīng)其中之一所述標(biāo)題欄的鼠標(biāo)點(diǎn)擊輸入,所述窗口逐漸伸展開,直至窗口內(nèi)容全部展示;
[0033]所述事件濾波器在所述步驟S2中判斷鼠標(biāo)的點(diǎn)擊輸入是否符合預(yù)設(shè)的規(guī)則,若符合,才響應(yīng)所述標(biāo)題欄的鼠標(biāo)點(diǎn)擊輸入;這種規(guī)則可以簡單地選擇為單擊或者雙擊。
[0034]在所述步驟S2中,響應(yīng)所述標(biāo)題欄的鼠標(biāo)點(diǎn)擊輸入,所述定時(shí)器被啟動,從而使得所述超時(shí)處理模塊控制所述窗口逐漸伸展開,直至窗口內(nèi)容全部展示;
[0035]在所述步驟S2中,所述窗口伸展開