2012-10-13 3 views
1

QGraphicsScene을 사용하여 QGraphicsView에 이미지를 표시하려고합니다. 내 코드는 매우 기본입니다 :QGraphicsView/QGraphicsScene 이미지 크기

QGraphicsScene* scene = new QGraphicsScene(this); 
scene->addPixmap(QPixmap(qApp->applicationDirPath() +"/france.gif")); 
ui->myGraphicsView->setScene(scene); 
ui->myGraphicsView->fitInView(scene->sceneRect()); 

내 문제는 내 그림의 크기가 잘못되었습니다. 그것은 매우 작고, 잘못된 비율로, 그리고 GraphicsView의 중앙에 있습니다. qDebug를 사용하면 그림이 성공적으로로드되고 약 100x800 픽셀의 크기가됩니다. 내 graphicsView 크기가 작아서 내 그림 크기를 조정하여 GraphicsView 크기로 조정하고 싶습니다.

graphicsView가 메인 윈도우 폼에 설정되고 장면이 헤더에 선언됩니다 : "QGraphicsScene scene;"

전 세계에서 모든 것을 시도 할 수는 있지만 그래픽 뷰는 공백이거나 그림의 작은 버전이 포함되어 있습니다. 내가 인터넷의 일부 코드를 복사/붙여 넣을 때 나는 항상이 문제를 겪는다. 나는 또한이 예제로 시도한다 : Qt GUI Development - Displaying a 2D grid using QGraphicsView, 같은 문제 ...

어쩌면 나는 아주 아주 피곤하지만 나는 무엇이 잘못되었는지를 이해하지 못한다. 도와주세요 :)

답변

1

sceneRect()은 구체적으로 설정하지 않는 한 생각하지 못할 수도 있습니다. 또한 fitInview 전화에서 aspectRatioMode가 누락되어 이미지가 왜곡되어 "작은"모양이 나타날 수 있습니다.

QGraphicsScene* scene = new QGraphicsScene(this); 
QGraphicsPixmapItem p = scene->addPixmap(QPixmap(qApp->applicationDirPath() +"/france.gif")); 
ui->myGraphicsView->setScene(scene); 
ui->myGraphicsView->fitInView(p, Qt::KeepAspectRatio); 
+0

수 있습니다 생각 .digia.com/qt/qgraphicsscene.html # itemsBoundingRect – jdi

+0

해결책을 찾으십시오. Stephen : QPixmap pixmap (qApp-> applicationDirPath() + "/ france.gif"); QGraphicsPixmapItem * item = scene.addPixmap (pixmap); ui-> myGraphicsView-> setScene (& scene); ui-> myGraphicsView-> fitInView (item, Qt :: KeepAspectRatio); ' 이제 결과가 나타납니다. http://images.meteociel.fr/im/6981/result_hnx1.PNG – QLag

+0

다른 정보 .. . 나는 MainWindow에서이 마지막 코드를 시도한다. 그것은 위대한 작품. MainWindow의 버튼을 클릭하면 QWidget에 tgis 코드가 표시되고 작동하지 않습니다. 동일한 결과가 있습니다. http://images.meteociel.fr/im/6981/result_hnx1.PNG – QLag

0

장면 창을 표시하기 전에 fitInView를 시도하면 표시되는 이미지가 매우 작습니다. 기술적으로 sceneRect 크기는 실제로 보여 질 때까지 우리가 원하는 방식으로 설정되지 않습니다. 따라서 fitInView를 제대로 사용하려면 장면 창이 나타나게해야합니다. HTTP : //doc.qt

글쎄, 난 솔루션이 여기에 내가 OP는 모든 주위 RECT 장면에서 (만) 항목을 얻을 수 itemsBoundingRect()에 대해 생각했다 생각 Qt5 C++ QGraphicsView: Images don't fit view frame