QGraphicsView et de défilement de l'image mise à l'échelle/recadrage

Je voudrais avoir une image de fond dans mon QGraphicsView qui est toujours mis à l'échelle (et tronquée si nécessaire) à la taille de la fenêtre d'affichage, sans les barres de défilement et sans faire défiler l'écran avec le clavier et la souris. L'exemple ci-dessous est ce que je fais de redimensionner et de recadrer une image dans la fenêtre d'affichage, mais je suis en utilisant des valeurs aléatoires pour les cultures qui sont sortis de l'éther. Je voudrais une solution logique?

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{

    ui->setupUi(this);
    scene = new QGraphicsScene(this);

    ui->graphicsView->resize(800, 427); 
    //MainWindow is 800x480, GraphicsView is 800x427. I want an image that
    //is the size of the graphicsView.

    ui->graphicsView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    ui->graphicsView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    //the graphicsView still scrolls if the image is too large, but 
    //displays no scrollbars. I would like it not to scroll (I want to 
    //add a scrolling widget into the QGraphicsScene later, on top of
    //the background image.)


    QPixmap *backgroundPixmap = new QPixmap(":/Valentino_Bar_Prague.jpg");
    QPixmap sized = backgroundPixmap->scaled(
            QSize(ui->graphicsView->width(), 
                  ui->graphicsView->height()),
            Qt::KeepAspectRatioByExpanding); //This scales the image too tall

    QImage sizedImage = QImage(sized.toImage());
    QImage sizedCroppedImage = QImage(sizedImage.copy(0,0,
       (ui->graphicsView->width() - 1.5),
       (ui->graphicsView->height() + 19))); 
    //so I try to crop using copy(), and I have to use these values
    //and I am unsure why.

    QGraphicsPixmapItem *sizedBackground = scene->addPixmap(
        QPixmap::fromImage(sizedCroppedImage));
    sizedBackground->setZValue(1);
    ui->graphicsView->setScene(this->scene);
}

Je voudrais savoir un moyen de redimensionner et de recadrer une image à la taille de la QGraphicsView qui fonctionne même quand je redimensionner le QGraphicsView. Où sont les 1.5 et 19 en venir?

EDIT; j'ai également tenté d'utiliser setBackgroundBrush, mais j'ai un arrière-plan en mosaïque, même lors de l'utilisation de l'échelle/recadrée QImage/QPixmap.

EDIT; Ma solution a été de remplacer drawBackground() pour obtenir le résultat que je voulais, mais ce n'est toujours pas m'aider à apprendre comment la taille d'une image à la taille de la fenêtre d'un qgraphicsview. Toute les réponses seraient grandement appréciés.

void CustomGraphicsView::drawBackground( QPainter * painter, const QRectF & rect )
{

    qDebug() << "background rect: " << rect << endl;

    QPixmap *backgroundPixmap = new QPixmap(":/Valentino_Bar_Prague.jpg");
    QPixmap sized = backgroundPixmap->scaled(QSize(rect.width(), rect.height()), Qt::KeepAspectRatioByExpanding);

    painter->drawPixmap(rect, sized, QRect(0.0, 0.0, sized.width(), sized.height()));

}

OriginalL'auteur user298725 | 2010-03-22