至窗口內(nèi)容全部展示的時(shí)間由預(yù)設(shè)在所述定時(shí)器中的超時(shí)時(shí)間來(lái)確定;
[0036]在一可選的實(shí)施例中,所述標(biāo)題欄位于伸展開后窗口的上端位置,在所述步驟S2中,所述窗口向下逐漸伸展開;
[0037]在另一可選的實(shí)施例中,所述標(biāo)題欄位于伸展開后窗口的左側(cè)位置,在所述步驟S2中,所述窗口向右逐漸伸展開;
[0038]換言之,舉例來(lái)說(shuō),當(dāng)鼠標(biāo)點(diǎn)擊標(biāo)題欄時(shí)啟動(dòng)定時(shí)器,timer_event()超時(shí)處理程序?qū)Υ翱诘膶挾然蚋叨戎饾u加長(zhǎng),當(dāng)窗口完全顯現(xiàn)時(shí)停止定時(shí)器,該過(guò)程展現(xiàn)了一個(gè)窗口的彈出動(dòng)畫效果;
[0039]S3:響應(yīng)該標(biāo)題欄的鼠標(biāo)的再次點(diǎn)擊輸入,所述窗口逐漸收縮起,直至窗口內(nèi)容被所述標(biāo)題欄覆蓋。
[0040]事件濾波器用以,在所述步驟S3中判斷鼠標(biāo)的點(diǎn)擊輸入是否符合預(yù)設(shè)的規(guī)則,若符合,才響應(yīng)所述標(biāo)題欄的再次點(diǎn)擊輸入;
[0041]在所述步驟S3中,響應(yīng)所述標(biāo)題欄的鼠標(biāo)的再次點(diǎn)擊輸入,所述定時(shí)器再次被啟動(dòng),從而使得所述超時(shí)處理模塊控制所述窗口逐漸收縮起,直至窗口內(nèi)容被所述標(biāo)題欄覆至
ΠΠ O
[0042]在所述步驟S3中,所述窗口收縮起至窗口內(nèi)容被所述標(biāo)題欄覆蓋的時(shí)間也由預(yù)設(shè)在所述定時(shí)器中的超時(shí)時(shí)間來(lái)確定。
[0043]在一可選的實(shí)施例中,所述標(biāo)題欄位于伸展開后窗口的上端位置,在所述步驟S3中,所述窗口向上逐漸收縮起。
[0044]在另一可選的實(shí)施例中,所述標(biāo)題欄位于伸展開后窗口的左側(cè)位置,在所述步驟S3中,所述窗口向左逐漸收縮起。
[0045]在其他可選的實(shí)施例中,設(shè)于下端、右側(cè)等均是以上描述的等同手段。
[0046]換言之,在步驟S3中,本實(shí)施例中,當(dāng)鼠標(biāo)再次點(diǎn)擊標(biāo)題欄時(shí)再次啟動(dòng)定時(shí)器,timer_event()超時(shí)處理程序?qū)Υ翱诘膶挾然蚋叨戎饾u減短,當(dāng)窗口縮小為一個(gè)標(biāo)題欄尺寸時(shí)停止定時(shí)器,該過(guò)程展現(xiàn)了一個(gè)窗口的收起動(dòng)畫效果。
[0047]本實(shí)施例中,所述標(biāo)題欄可以采用QLabel控件。也可以是基于QLabel派生的自定義控件;標(biāo)題欄可放置在窗口的頂端,則窗口向下彈出,亦可放置在左側(cè),則窗口向右彈出。
[0048]本實(shí)施例中,窗口伸縮的速度由定時(shí)器超時(shí)時(shí)間和伸縮固定長(zhǎng)度決定,超時(shí)時(shí)間在啟動(dòng)定時(shí)器時(shí)進(jìn)行設(shè)置,如start (50)設(shè)置定時(shí)器的超時(shí)時(shí)間為50ms,伸縮固定長(zhǎng)度是在超時(shí)時(shí)間內(nèi)窗口伸長(zhǎng)或縮短的固定長(zhǎng)度;超時(shí)時(shí)間越短且伸縮固定長(zhǎng)度越長(zhǎng)時(shí)窗口伸縮速度越快,反之亦然。
[0049]綜上所述,本發(fā)明引入了標(biāo)題欄,相應(yīng)的輔助窗口與該標(biāo)題欄匹配,可以將待顯示的信息隱藏在窗口中,需要顯示時(shí),通過(guò)對(duì)標(biāo)題欄的點(diǎn)擊操作,使得該窗口彈出,不需要顯示時(shí),再次點(diǎn)擊操作,該窗口又可收回,有效節(jié)約了顯示空間,也使得界面效果變得生動(dòng)。
【主權(quán)項(xiàng)】
1.一種窗口伸縮效果的實(shí)現(xiàn)方法,其特征在于:包括如下步驟: 51:創(chuàng)建至少一個(gè)自定義窗口類,并為其添加用于窗口創(chuàng)建的成員函數(shù),從而創(chuàng)建位于一可伸展開可收縮起的窗口上的一個(gè)標(biāo)題欄; 52:響應(yīng)其中之一所述標(biāo)題欄的鼠標(biāo)點(diǎn)擊輸入,所述窗口逐漸伸展開,直至窗口內(nèi)容全部展示; 53:響應(yīng)該標(biāo)題欄的鼠標(biāo)的再次點(diǎn)擊輸入,所述窗口逐漸收縮起,直至窗口內(nèi)容被所述標(biāo)題欄覆蓋。
2.如權(quán)利要求1所述的窗口伸縮效果的實(shí)現(xiàn)方法,其特征在于:在所述步驟SI中還包括建立事件濾波器; 所述事件濾波器用以,在所述步驟S2與S3中判斷鼠標(biāo)的點(diǎn)擊輸入是否符合預(yù)設(shè)的規(guī)貝IJ,若符合,才響應(yīng)所述標(biāo)題欄的鼠標(biāo)點(diǎn)擊輸入和再次點(diǎn)擊輸入。
3.如權(quán)利要求1所述的窗口伸縮效果的實(shí)現(xiàn)方法,其特征在于:在所述步驟SI中還包括建立定時(shí)器和超時(shí)處理模塊; 在所述步驟S2中,響應(yīng)所述標(biāo)題欄的鼠標(biāo)點(diǎn)擊輸入,所述定時(shí)器被啟動(dòng),從而使得所述超時(shí)處理模塊控制所述窗口逐漸伸展開,直至窗口內(nèi)容全部展示; 在所述步驟S3中,響應(yīng)所述標(biāo)題欄的鼠標(biāo)的再次點(diǎn)擊輸入,所述定時(shí)器再次被啟動(dòng),從而使得所述超時(shí)處理模塊控制所述窗口逐漸收縮起,直至窗口內(nèi)容被所述標(biāo)題欄覆蓋。
4.如權(quán)利要求3所述的窗口伸縮效果的實(shí)現(xiàn)方法,其特征在于:在所述步驟S2中,所述窗口伸展開至窗口內(nèi)容全部展示的時(shí)間由預(yù)設(shè)在所述定時(shí)器中的超時(shí)時(shí)間來(lái)確定; 在所述步驟S3中,所述窗口收縮起至窗口內(nèi)容被所述標(biāo)題欄覆蓋的時(shí)間也由預(yù)設(shè)在所述定時(shí)器中的超時(shí)時(shí)間來(lái)確定。
5.如權(quán)利要求1所述的的窗口伸縮效果的實(shí)現(xiàn)方法,其特征在于:所述標(biāo)題欄位于伸展開后窗口的上端位置;在所述步驟S2中,所述窗口向下逐漸伸展開;在所述步驟S3中,所述窗口向上逐漸收縮起。
6.如權(quán)利要求1所述的窗口伸縮效果的實(shí)現(xiàn)方法,其特征在于:所述標(biāo)題欄位于伸展開后窗口的左側(cè)位置;在所述步驟S2中,所述窗口向右逐漸伸展開;在所述步驟S3中,所述窗口向左逐漸收縮起。
7.如權(quán)利要求1或5或6所述的窗口伸縮效果的實(shí)現(xiàn)方法,其特征在于:所述標(biāo)題欄采用QLabel控件。
8.如權(quán)利要求1所述的窗口伸縮效果的實(shí)現(xiàn)方法,其特征在于:在所述步驟SI中,基于QFrame創(chuàng)建所述自定義窗口類。
9.如權(quán)利要求1所述的窗口伸縮效果的實(shí)現(xiàn)方法,其特征在于:在所述步驟SI中,所述成員函數(shù)為create成員函數(shù)。
【專利摘要】本發(fā)明提供了一種窗口伸縮效果的實(shí)現(xiàn)方法,包括如下步驟:S1:創(chuàng)建至少一個(gè)自定義窗口類,并為其添加用于窗口創(chuàng)建的成員函數(shù),從而創(chuàng)建位于一可伸展開可收縮起的窗口上的一個(gè)標(biāo)題欄;S2:響應(yīng)其中之一所述標(biāo)題欄的鼠標(biāo)點(diǎn)擊輸入,所述窗口逐漸伸展開,直至窗口內(nèi)容全部展示;S3:響應(yīng)該標(biāo)題欄的鼠標(biāo)的再次點(diǎn)擊輸入,所述窗口逐漸收縮起,直至窗口內(nèi)容被所述標(biāo)題欄覆蓋。本發(fā)明引入了標(biāo)題欄,相應(yīng)的輔助窗口與該標(biāo)題欄匹配,可以將待顯示的信息隱藏在窗口中,需要顯示時(shí),通過(guò)對(duì)標(biāo)題欄的點(diǎn)擊操作,使得該窗口彈出,不需要顯示時(shí),再次點(diǎn)擊操作,該窗口又可收回,有效節(jié)約了顯示空間,也使得界面效果變得生動(dòng)。
【IPC分類】G06F9-44
【公開號(hào)】CN104699490
【申請(qǐng)?zhí)枴緾N201510161235
【發(fā)明人】高宇, 王虹, 辜鵬
【申請(qǐng)人】上海航天測(cè)控通信研究所
【公開日】2015年6月10日
【申請(qǐng)日】2015年4月3日