通过前几节的自定义窗体的学习,我们可以很容易的写出一套属于自己风格的界面框架,通用于各种窗体,比如: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>
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。。。