Référence d'objet pour l'affichage d'image dans une QMdiArea
Bonjour à tous,
J'ai récupéré et adapté un code pour me permettre d'afficher une image dans une QMdiArea.
Et mon problème est que le QPainter que j'utilise est mal initialisé ou mal utilisé, et la je commence à m'arracher les cheveux.
Pour aider voici mon code
le .h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
#ifndef MDIAREA_H
#define MDIAREA_H
#include <QMdiArea>
#include <QPainter>
#include <QImage>
#include <QResizeEvent>
#include <QRect>
class MdiArea : public QMdiArea
{
Q_OBJECT
public:
MdiArea(QWidget *parent = (QWidget*)Q_NULLPTR);
~MdiArea();
protected:
void resizeEvent(QResizeEvent *resizeEvent);
private:
QImage *m_Img;
QWidget *m_Parent;
};
#endif // !MDIAREA_H |
et le .cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
#include "MdiArea.h"
MdiArea::MdiArea(QWidget *parent) : QMdiArea(parent), m_Parent(parent) {
m_Img = new QImage(":/Background/central");
}
MdiArea::~MdiArea() {
delete m_Img;
delete m_Parent;
}
void MdiArea::resizeEvent(QResizeEvent *resizeEvent) {
QImage *newBackground = new QImage(m_Parent->size(), QImage::Format_RGB32);
QPainter *painter = new QPainter(newBackground);
painter->fillRect(m_Parent->rect(), QColor(212, 208, 200));
QImage *scaledImg = new QImage( m_Img->scaled(m_Img->size(), Qt::IgnoreAspectRatio) );
QRect *scaledRect = new QRect( scaledImg->rect() );
scaledRect->moveTo(newBackground->rect().topLeft());
painter->drawImage(new QRect(0, 0, m_Parent->size().width(), m_Parent->size().height()), scaledImg);
setBackground(*newBackground);
QMdiArea::resizeEvent(resizeEvent);
} |
Le problème se situe au niveau de la ligne 25 : painter->drawImage( ... );
J'ai la flèche qui est soulignée en rouge avec le tooltip
Citation:
drawImage
aucune instance de fonction surchargée "QPainter::drawImage" ne correspond à la liste d'arguments
les types sont : (QRect *,QImage *)
le type d'objet est : QPainter
alors que la doc donne pour drawImage de QPainter
Citation:
void QPainter::drawImage(const QRect & rectangle, const QImage & image)
This is an overloaded function.
Draws the given image into the given rectangle.
Note: The image is scaled to fit the rectangle, if both the image and rectangle size disagree.
Il doit y avoir un truc sur les pointeurs que j'ai pas compris.
Mais la je cale.
Si quelqu'un peut m'explique, merci d'avance