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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt 中怎么在qmessagebox添加背景图片相关的知识,希望对你有一定的参考价值。

或者能用什么控件代替qmessagebox且具有qmessagebox的一些功能;(添加背景图片)
紧急求救!!!谢谢

参考技术A 这个简单,从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是非模式的

本回答被提问者采纳
参考技术B 你可以用QLabel,你查查帮助手册QLabel的用法就知道了

Qt中提示框QMessageBox怎样进行美化!

比如:去掉关闭按钮、更改背景色、更改Ok/Cancel等按钮背景图片等!
QMessageBoxmsgBox;//定义提示框
msgBox.setWindowTitle("确认删除文件");
msgBox.setText("您确定要删除吗?");msgBox.setInformativeText("亲,删除之后不可恢复哦。。。");msgBox.setStandardButtons(QMessageBox::Ok|QMessageBox::Cancel);msgBox.setDefaultButton(QMessageBox::Ok);msgBox.setButtonText(QMessageBox::Ok,"确定");msgBox.setButtonText(QMessageBox::Cancel,"取消");msgBox.setWindowFlags(Qt::FramelessWindowHint);//隐藏关闭按钮msgBox.setStyleSheet("background-color:white");//设置背景色msgBox.setIconPixmap(QPixmap(":/ico/ppt"));//设置图标

这些已经设置好了,还需要设置“确定”、“取消”按钮的背景图片或颜色,最好能够自定义添加鼠标移动窗口事件!(要不隐藏掉关闭按钮之后,提示框是不能移动的!),详细解答者有追加奖励。

你可以先生成QMessageBox对象,然后定义自己定义的按钮。QPUSHBUTTON
设置按钮的属性,图标然后用addbutton添加到QMessageBox对象。
QWidget::setBackgroundRole设置背景。
好多分啊。。。追问

好多分就给你吧!

参考技术A 如果大改的话,那就重绘一个就好啦,用designer,因为本来功能也没多强大。 修改的话 可以qss追问

能有具体一点的代码吗?我对qss设置QMessageBox不熟悉,搜了好多资料也没多少帮助!谢谢了

以上是关于qt 中怎么在qmessagebox添加背景图片的主要内容,如果未能解决你的问题,请参考以下文章

Qt中提示框QMessageBox怎样进行美化!

QT中QMessageBox的一些方式

请问谁知道怎么把Qt中的QMessageBox中显示的ok和cancel改成汉字啊 确定和取消啊!

qt 我想让QMessageBox里面显示我接受到的数组。

QMessageBox:warning里怎么显示中文

QT的常用对话框的应用