나는 QGraphicsScene을 가지고 있는데, 나는 QLabel을 가지고 있고 QPixmap을 QLabel로 설정했다. .png는 background.qrc 리소스 파일에 설정됩니다. QLabel의 크기는 600x400입니다. 픽스맵이 없다면 QGraphicsScene의 크기도 600x400입니다. 그러나 픽스맵을 QLabel로 설정하고 크기를 조정하면 실패합니다. QLabel의 크기는 동일합니다. pixmap은 QLabel 내에서 크기가 조정되고 그 안에 만 표시되지만 QGraphicsScene은 720x720 인 QPixmap의 실제 크기를 채택합니다. QLabel은 정확한 크기의 QPixmap으로 볼 수 있지만 장면이 더 크기 때문에 주위에 회색 위치가 있습니다. 어떻게 해결하고 작동하게 할 수 있습니까? QGraphicScene이 QLabel의 크기를 유지하기를 원합니다. 당신이 장면의 크기를 설정하지 마십시오, 당신의 예제 코드에서QT QGraphicsScene with QLabel and QPixmap
#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;
}
왜 대신'QGraphicsPixmapItem'을 사용하지 않으시겠습니까? 더 가볍고 제어하기 쉽습니다. – ilotXXI
그것은 나를 위해 작동하지 않습니다. QLabel과 QPixmap으로 만들어야합니다. – Alex
@Alex 그리고 "당신을 위해 일하지 않는다"는 것은 무엇을 의미합니까? 어쩌면 우리는이 문제를 해결할 수 있습니다. – Tomas