
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、qt無邊框窗體qt無邊框窗體-模擬模態(tài)窗體顫動效果名目一、概述二、效果展示三、功能實現(xiàn)四、相關(guān)文章原文鏈接:qt無邊框窗體-模擬模態(tài)窗體顫動效果一、概述用qt開發(fā)windows客戶端界面的確是一大利器,兼顧性能的同時,速度相對來說也不錯。再加上qss的輔助,那么一個美麗的界面就不在話下了。想要做出美麗的界面,重寫一個標題欄是必不行少的,那么我們絕對是需要用法qt給我們提供的一個無邊框qt:framelesswindowhint窗體屬性。但是設(shè)置了這個屬性以后,隨之而來的就是一系列的問題,比如說標題欄拖拽需要我們自己搞;窗口放大縮小需要自己實現(xiàn);最要命的是一些模態(tài)窗體原生的顫動效果沒有了。既然浮
2、現(xiàn)問題,那么我們就得想方法解決。窗口放大縮小和拖拽在qt的早期版本是提供了一個類文件支持的,作者本人也對這個文件舉行了二次開發(fā),可以提供更為豐盛的功能。因為拖拽和縮放跟本篇文章關(guān)系不大,因此這里不做解釋,感愛好的學生可以到qt無邊框窗體-最大化時支持拖拽還原這里查看本篇文章我們就來說一說當模態(tài)窗體彈出來時,假如點擊了非模態(tài)窗體以外的應(yīng)用程序界面,怎么實現(xiàn)一個閃動的效果。閃動只是一個對外的信息交互,假如大家想要一些其他交互效果,可以自行實現(xiàn)。二、效果展示如效果圖所示,做了一個容易的效果點擊主應(yīng)用程序時,彈出的模態(tài)窗體邊框色彩發(fā)生了變動,實現(xiàn)了一個顫動的效果。點擊桌面時,模態(tài)窗體也有一個失去焦點時
3、的狀態(tài)變幻。三、功能實現(xiàn)實現(xiàn)窗口顫動效果,首先需要了解windows的消息id,知道我們要接受哪個windows消息來完成閃動效果,第二就是qt怎么接收這樣的原生windows消息。windowws消息了解windows消息id,順手打開一個搜尋引擎,輸入關(guān)鍵字windows消息id,然后就能找到大量的文章特地敘述windwos消息,博主這里找了一篇收拾windows消息列表的文章windows消息id解釋,文章中的消息基本上都有中文注釋,因此閱讀起來比較簡單。然后我們就會發(fā)覺有這樣一個消息,可能是我們需要的,如下圖所示。第130條內(nèi)容,id為86的wm_ncactivate消息。消息觸發(fā)的實
4、際是當某個窗口它的非客戶區(qū)需要被轉(zhuǎn)變來顯示是激活還是非激活狀態(tài)時。 聽著有點兒意思,好似是我們需要的,然后就試唄。qt接收原生消息既然鎖定了消息id,那么接下來就是接收這個消息,然后實現(xiàn)響應(yīng)的ui交互效果即可。那么問題來了,qt窗口怎么接收windows原生消息呢!這個問題固然難不倒我們了。qt為啥這么火,可不僅僅是由于庫封裝的好,而是它協(xié)助文檔更全。下一步大家應(yīng)當知道該干什么了吧,打開協(xié)助文檔,然后搜尋關(guān)鍵字nativeev,假如不知道函數(shù)的詳細名字或者功能名字,最好舉行含糊搜尋。不搜不知道,一搜嚇一跳,本來還有不少接收原生消息的函數(shù),如下不所示。上圖中總共有如下幾個函數(shù)filternati
5、veevent:安裝大事過濾器的回調(diào)函數(shù)installnativeeventfilter:安裝大事過濾器,回調(diào)函數(shù)是第4個函數(shù)nativeevent:窗口原生大事回調(diào)nativeeventfilter:大事過濾器回調(diào)函數(shù),用法辦法2安裝看到這里大家卡能會有些迷茫,好似都差不多呀!其實不然,還是有卻別的,感愛好的學生可以看看我之前寫的幾篇相關(guān)文章,都用法了接收全局windows消息來實現(xiàn)先關(guān)功能,詳細一點來說就是用法上述的辦法2+辦法4來完成。qt之自定義qlineedit右鍵菜單qt捕捉全局windows消息qt之股票組件-股票檢索-支持搜尋結(jié)果預(yù)覽、鼠標、鍵盤操作除過辦法2和辦法4搭配起來用
6、法外,辦法1和辦法2也可以一起搭配用法,弦外之音就是辦法2是根據(jù)大事過濾器的,辦法1和辦法4只是大事過濾器的回調(diào)處理接口而已。為什么這么說呢,大家可以來驗證一下,還是打開協(xié)助文檔,我們輸入關(guān)鍵字installnativeeventfilter,回車就會發(fā)覺,大事過濾器可以被安裝到兩個對象上,一個是我們熟知的qcoreapplication,另外一個看著好似也會牛逼的樣子,好似還是一個全局的抽象大事派發(fā)器。恭喜你,答對了,這兩個對象都很牛逼,都能優(yōu)先處理到qt的全局大事。本篇文章我們只是要實現(xiàn)一個模態(tài)窗體的顫動而已,因此就不需要大材小用了,我們用法qwidget的nativeevent函數(shù)即可,
7、同樣能達到我們的目的。大方向都定了,那么還等什么打開vs,新建了一個demo。哐哐哐,就是一頓干。發(fā)覺還真好使,竊喜中。下面是實現(xiàn)的核心代碼,因為是demo,所以寫的比較粗糙,大家在寫到項目里時最好能規(guī)范下代碼。bool xxx:nativeevent(const qbytearray &eventtype, void *message, long *result) if ("windows_generic_msg" = eventtype) msg * pmsg = reinterpret_cast(message); if (pmsg-&
8、gt;message = wm_ncactivate) bool active = (bool)(pmsg->wparam); if (active) setstylesheet("border:2 solid blue;background:gray;"); else setstylesheet("border:2 solid red;background:gray;"); style()->unpolish(this); style()->polish(this); return qdialog:nativeevent(eventtype, message, result); 重點強調(diào)這里還需要說一點,有些學生根據(jù)文檔操作了,調(diào)試時代碼也走到相關(guān)位置了,但是發(fā)覺沒有效果,然后就開頭疑惑人生了。這里博主重點說幾個可能浮現(xiàn)錯誤的地方我們的模態(tài)窗體一定要指定模態(tài)的父窗體是誰窗體一定要設(shè)置上qt:dialog屬性其次點是十分關(guān)鍵的,無數(shù)學生都是沒有設(shè)置這個屬性,導(dǎo)致失去
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村板車出售合同范例
- 公司注銷業(yè)務(wù)合同范本
- 中醫(yī)診所招聘合同范本
- 單位出售土地合同范本
- 公司車定維修合同范本
- 共享出租場地合同范本
- 勞務(wù)聯(lián)營合同范例
- 加油站出租合同范本
- 企業(yè)賦能合同范本
- 二手房房東出租合同范例
- (2024年)中國傳統(tǒng)文化介紹課件
- 糖尿病患者飲食指導(dǎo)課件
- 人工智能數(shù)據(jù)標注百億產(chǎn)業(yè)詳細介紹
- 2023年高考真題-地理(天津卷) 含答案
- 2024年10月自考02160流體力學試題及答案含評分參考
- 2025年公務(wù)員考試《行測》模擬題及答案(詳細解析)
- 2024年黑龍江省牡丹江市中考歷史試卷
- 滬科版八年級物理知識點總結(jié)
- 孫權(quán)勸學(原卷版)-2024年中考語文之文言文對比閱讀
- 高速公路日常清掃與養(yǎng)護方案
- 風電epc合同模板
評論
0/150
提交評論