天天看點

【Qt程式設計】基于Qt的詞典開發系列<四>--無邊框視窗的縮放與拖動

        在現在,絕大多數軟體都向着簡潔,時尚發展。就拿有道的單詞本和我做的單詞本來說,絕大多數使用者肯定喜歡我所做的單詞本(就單單界面,關于顔色搭配和布局問題,大家就不要在意了)。

有道的單詞本:

【Qt程式設計】基于Qt的詞典開發系列<四>--無邊框視窗的縮放與拖動

我所做的單詞本:

【Qt程式設計】基于Qt的詞典開發系列<四>--無邊框視窗的縮放與拖動

        很明顯,兩者的主要差別就是周圍的邊框問題。你可以對比QQ以前的版本和這幾年的版本,就會發現都傾向于下面這種視窗模式。下面我們就說說如何用Qt實作無邊框視窗的縮放與拖動。

        對于無邊框視窗的拖動其實很簡單,其基本思想是,在滑鼠移動前後記錄滑鼠的坐标,然後将視窗移動這兩個坐标之差的距離即可,具體實作可以看代碼,就非常清楚了。下面主要講講如何實作滑鼠改變視窗的大小,首先,我們将一個視窗分為以下9個區域,其中隻有滑鼠在22區域時無法改變其形狀,不能改變視窗大小。當滑鼠在其它區域時,滑鼠改變形狀并可以改變視窗大小。視窗區域分類如下圖:

【Qt程式設計】基于Qt的詞典開發系列<四>--無邊框視窗的縮放與拖動

具體實作如下代碼(widget.ui未做任何改變):

1、widget.h檔案

2、widget.cpp檔案

3、main.cpp檔案

程式運作截圖如下:

【Qt程式設計】基于Qt的詞典開發系列<四>--無邊框視窗的縮放與拖動

        當你将滑鼠放在視窗的邊緣時,滑鼠會變化形狀,表示可以拖動視窗。由于沒有關閉視窗,隻能在強制關閉視窗。如果想做到和不同視窗實作最小化和關閉視窗的畫,我們可以在視窗左上角放置兩個ToolButton,并設定autorise屬性,加上圖檔即可。下面給出使用上面的無邊框視窗所做的詞典軟體的主界面:

【Qt程式設計】基于Qt的詞典開發系列<四>--無邊框視窗的縮放與拖動

基于Qt的詞典開發系列

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/44757875">詞典架構設計及成品展示</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/45014771">本地詞典的設計</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/45099867">開始菜單的設計</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/38758051">無邊框視窗的縮放與拖動</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/38817595">無邊框視窗的拖動</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/45223931">界面美化設計</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/45484803">調用網絡API</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/45932429">使用者登入及API調用的實作</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/45932429">JSON資料解析</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/23294533">國際音标的顯示</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/38237203">系統托盤的顯示</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/38306803">調用講述人</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/38555787">音頻播放</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/38689745">自動補全功能</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/38734201">HTML特殊字元及正規表達式</a>

<a target="_blank" href="http://blog.csdn.net/tengweitw/article/details/46563781">後序</a>

作品下載下傳位址(綠色版):http://download.csdn.net/detail/tengweitw/8830495

源碼下載下傳位址:http://download.csdn.net/detail/tengweitw/8830503

<a target="_blank" href="http://download.csdn.net/detail/tengweitw/8548767"></a>

作者:nineheadedbird