天天看點

Qt之自定義界面(QMessageBox)簡述效果自定義提示框源碼學習

通過前幾節的自定義窗體的學習,我們可以很容易的寫出一套屬于自己風格的界面架構,通用于各種窗體,比如:qwidget、qdialog、qmainwindow。

大多數窗體的實作都是采用控件堆積來完成的,隻要思路清晰,再複雜的界面實作起來都遊刃有餘。下面我來列舉一個由qmessagebox擴充的提示框-根據其源碼實作思路來實作!

<a href="#%e7%ae%80%e8%bf%b0">簡述</a>

<a href="#%e6%95%88%e6%9e%9c">效果</a>

<a href="#%e8%87%aa%e5%ae%9a%e4%b9%89%e6%8f%90%e7%a4%ba%e6%a1%86">自定義提示框</a>

<a href="#%e5%ae%9e%e7%8e%b0">實作</a>

<a href="#%e6%8e%a5%e5%8f%a3%e8%af%b4%e6%98%8e">接口說明</a>

<a href="#%e4%ba%8c%e6%ac%a1%e5%b0%81%e8%a3%85">二次封裝</a>

<a href="#%e4%bd%bf%e7%94%a8%e6%96%b9%e5%bc%8f">使用方式</a>

<a href="#%e6%ba%90%e7%a0%81%e5%ad%a6%e4%b9%a0">源碼學習</a>

Qt之自定義界面(QMessageBox)簡述效果自定義提示框源碼學習
Qt之自定義界面(QMessageBox)簡述效果自定義提示框源碼學習
Qt之自定義界面(QMessageBox)簡述效果自定義提示框源碼學習
Qt之自定義界面(QMessageBox)簡述效果自定義提示框源碼學習
Qt之自定義界面(QMessageBox)簡述效果自定義提示框源碼學習

message_box.h

message_box.cpp

customwindow

主要對界面的無邊框可拖動進行了封裝

messagebox

整體界面布局及事件處理參考了qmessagebox源碼,接口包含:設定标題、提示資訊、預設按鈕及事件觸發等操作。

針對于各種提示框,我們可以再次進行封裝,将常用的提取出來,作為全局函數來使用。

其實qt中有很多自帶的比較好的效果,裡面用了很好的實作方式,建議安裝的時候把源碼download下來,随時可以研究并學習。例如:<code>d:\qt\qt5.5.1\5.5\src\qtbase\src\widgets\dialogs</code>下面包含了所有關于dialog的實作-qprogressdialog、qmessagebox、qfiledialog。。。

繼續閱讀