qt 中怎么在qmessagebox添加背景图片

或者能用什么控件代替qmessagebox且具有qmessagebox的一些功能;(添加背景图片)紧急求救!!!谢谢... 或者能用什么控件代替qmessagebox且具有qmessagebox的一些功能;(添加背景图片)
紧急求救!!!谢谢
展开
 我来答
winland0704
推荐于2017-09-29 · TA获得超过1075个赞
知道小有建树答主
回答量:715
采纳率:0%
帮助的人:831万
展开全部
这个简单,从QMessageBox派生一个类,
然后重载paintEvent函数,在paintEvent里面画张图片就搞定了。代码:
qpicmsgbox.h
///////////////////////////////////
#ifndef QPICMSGBOX_H
#define QPICMSGBOX_H

#include <QMessageBox>
#include <QImage>

class QPicMsgBox : public QMessageBox
{
Q_OBJECT
public:
explicit QPicMsgBox(QWidget *parent = 0);

QImage *pImage;

protected:
virtual void paintEvent(QPaintEvent *paintevent);
signals:

public slots:

};

#endif // QPICMSGBOX_H
///////////////////////////////////////////////
qpicmsgbox.cpp
////////////////////////////////////////////
#include "qpicmsgbox.h"
#include <QString>
#include <QPainter>
QPicMsgBox::QPicMsgBox(QWidget *parent) :
QMessageBox(parent)
{

QString fileName = tr("7.jpg");
pImage = new QImage(fileName);
}

void QPicMsgBox::paintEvent(QPaintEvent *paintevent)
{
QPainter painter(this);
painter.drawImage(0, 0, pImage->scaled(this->size()));

QMessageBox::paintEvent(paintevent);

}
/////////////////////////////////////
//绘制的背景图就是7.jpg缩放的,和消息框一样大。
调用上面QPicMsgBox的时候就添加代码:
#include "qpicmsgbox.h"
/////////////////////
void MainWindow::on_actionMsg_triggered() ////调用图片消息对话框
{
QPicMsgBox *pMsgBox = new QPicMsgBox;
pMsgBox->setWindowTitle(QString(tr("hello")));
pMsgBox->setText(QString(tr("hellogfkjdsgkldfsl;jgldsfg;klfdkjhglkdfs")));
pMsgBox->addButton(QMessageBox::Ok);
pMsgBox->addButton(QMessageBox::Close);
pMsgBox->exec(); /////////////exec是模式对话框,show是非模式的

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ice_maru
2011-12-08 · TA获得超过154个赞
知道小有建树答主
回答量:251
采纳率:0%
帮助的人:259万
展开全部
你可以用QLabel,你查查帮助手册QLabel的用法就知道了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式