在現在,絕大多數軟體都向着簡潔,時尚發展。就拿有道的單詞本和我做的單詞本來說,絕大多數使用者肯定喜歡我所做的單詞本(就單單界面,關于顔色搭配和布局問題,大家就不要在意了)。
有道的單詞本:
我所做的單詞本:
很明顯,兩者的主要差別就是周圍的邊框問題。你可以對比QQ以前的版本和這幾年的版本,就會發現都傾向于下面這種視窗模式。下面我們就說說如何用Qt實作無邊框視窗的縮放與拖動。
對于無邊框視窗的拖動其實很簡單,其基本思想是,在滑鼠移動前後記錄滑鼠的坐标,然後将視窗移動這兩個坐标之差的距離即可,具體實作可以看代碼,就非常清楚了。下面主要講講如何實作滑鼠改變視窗的大小,首先,我們将一個視窗分為以下9個區域,其中隻有滑鼠在22區域時無法改變其形狀,不能改變視窗大小。當滑鼠在其它區域時,滑鼠改變形狀并可以改變視窗大小。視窗區域分類如下圖:
具體實作如下代碼(widget.ui未做任何改變):
1、widget.h檔案
2、widget.cpp檔案
3、main.cpp檔案
程式運作截圖如下:
當你将滑鼠放在視窗的邊緣時,滑鼠會變化形狀,表示可以拖動視窗。由于沒有關閉視窗,隻能在強制關閉視窗。如果想做到和不同視窗實作最小化和關閉視窗的畫,我們可以在視窗左上角放置兩個ToolButton,并設定autorise屬性,加上圖檔即可。下面給出使用上面的無邊框視窗所做的詞典軟體的主界面:
基于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