一、重载resizeEvent
1、添加mymessagebox.cpp文件
#include "mymessagebox.h"
MyMessageBox::MyMessageBox(QWidget *parent) :
QMessageBox(parent),
_width(0),
_height(0)
{
}
void MyMessageBox::setMySize(int width, int height)
{
_width = width;
_height = height;
}
void MyMessageBox::resizeEvent(QResizeEvent *event)
{
setFixedSize(_width, _height);
}
2、添加mymessagebox.h文件
#ifndef MYMESSAGEBOX_H
#define MYMESSAGEBOX_H
#include <QWidget>
#include <QMessageBox>
#include <QResizeEvent>
class MyMessageBox : public QMessageBox
{
Q_OBJECT
public:
explicit MyMessageBox(QWidget *parent = 0);
void setMySize(int width, int height);
signals:
public slots:
protected:
void resizeEvent(QResizeEvent *event);
private:
int _width;
int _height;
};
#endif // MYMESSAGEBOX_H
3、在需要弹出MessageBox的地方添加代码
MyMessageBox msgBox;
msgBox.setMySize(640,480);//设置MessageBox的大小
msgBox.setStyleSheet("background-image:url(:/new/two/two_1.jpeg)");//显示图片
msgBox.exec();//执行改变
原文链接:QT设置MessageBox的大小-QT开发中文网