天天看点

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。。。

继续阅读