1*4882a593Smuzhiyun /*消息堵塞窗口,堵塞父类窗口.父窗口过小导致消息窗口显示不全,适用全屏的显示窗口.用于部分平台弹窗无法使用情况. 2*4882a593Smuzhiyun */ 3*4882a593Smuzhiyun #ifndef MESSAGEBOX_H 4*4882a593Smuzhiyun #define MESSAGEBOX_H 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #include <QWidget> 7*4882a593Smuzhiyun #include "ui_global.h" 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun class QEventLoop; 10*4882a593Smuzhiyun class UI_LIBRARY MessageBox : public QWidget 11*4882a593Smuzhiyun { 12*4882a593Smuzhiyun Q_OBJECT 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun public: 15*4882a593Smuzhiyun enum Button{ 16*4882a593Smuzhiyun no=1, 17*4882a593Smuzhiyun yes=2, 18*4882a593Smuzhiyun yes_no=3 19*4882a593Smuzhiyun }; 20*4882a593Smuzhiyun /*! 21*4882a593Smuzhiyun * \brief showMessage显示消息盒子. 22*4882a593Smuzhiyun * \param parent 父窗口,一般需要的. 23*4882a593Smuzhiyun * \param text 显示的信息. 24*4882a593Smuzhiyun * \param button 消息盒子button 类型. 25*4882a593Smuzhiyun * \return 返回状态 Button 枚举. 26*4882a593Smuzhiyun */ 27*4882a593Smuzhiyun static int showMessage(QWidget *parent, const QString &text, Button button= yes); 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun /*! 31*4882a593Smuzhiyun * \brief showMessage显示消息盒子无button. 32*4882a593Smuzhiyun * \param parent 父窗口,一般需要的. 33*4882a593Smuzhiyun * \param text 显示的信息. 34*4882a593Smuzhiyun */ 35*4882a593Smuzhiyun static int showDuringMessage(QWidget *parent, const QString &text, int duringSeconds=2); 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun protected: 38*4882a593Smuzhiyun explicit MessageBox(QWidget *parent, const QString &text, Button button= yes); 39*4882a593Smuzhiyun explicit MessageBox(QWidget *parent); 40*4882a593Smuzhiyun int exec(); 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun QEventLoop *m_pLoop= nullptr; 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun void paintEvent(QPaintEvent *e); 45*4882a593Smuzhiyun private: 46*4882a593Smuzhiyun bool eventFilter(QObject *watched, QEvent *event); 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun void filterChild(QObject *o); 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun private: 51*4882a593Smuzhiyun QList<QObject*> m_object; 52*4882a593Smuzhiyun }; 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun #endif // MESSAGEBOX_H 55