Ich habe eine QGraphicsView, in der ich eine QGraphicsScene habe, in der ich ein QLabel habe und ich ein .png Bild als QPixmap in QLabel einstelle. Das .png wird in der Hintergrund.Qrc-Ressourcendatei festgelegt. Meine QLabel ist 600x400 groß. Ohne die Pixmap ist es okay, die Größe der QGraphicsScene ist auch 600x400. Aber wenn ich das Pixmap auf QLabel setze und es skaliere, schlägt es fehl. Die Größe von QLabel ist die gleiche, die Pixmap ist innerhalb von QLabel gut skaliert und nur innerhalb von QLabel sichtbar, aber QGraphicsScene nimmt die tatsächliche Größe der QPixmap an, also 720x720. Also ist das QLabel mit der richtigen Größe in der QPixmap sichtbar, aber da ist eine graue Stelle, da die Szene größer ist. Wie kann ich das beheben und es funktionieren lassen? Ich möchte, dass QGraphicScene auf der Größe von QLabel bleibt.QT QGraphicsScene mit QLabel und QPixmap
Hier ist der Code:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPixmap>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QLabel>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QGraphicsView *myView = new QGraphicsView(this);
QGraphicsScene *myScene= new QGraphicsScene();
QLabel *myLabel= new QLabel();
myLabel->setBaseSize(QSize(600, 400));
myLabel->resize(myLabel->baseSize());
myLabel->setScaledContents(true);
QPixmap pixmapBackground(":/new/cross.png");
myLabel->setPixmap(pixmapBackground);
myScene->addWidget(myLabel);
myView->setScene(myScene);
setCentralWidget(myView);
}
MainWindow::~MainWindow()
{
delete ui;
}
Warum verwenden Sie nicht stattdessen 'QGraphicsPixmapItem'? Es ist leichter und einfacher zu steuern. – ilotXXI
Es funktioniert nicht für mich. Ich muss es mit einem QLabel und einer QPixmap machen. – Alex
@Alex Und was meinst du mit "nicht für dich arbeiten"? Vielleicht können wir dieses Problem lösen. – Tomas