Initialize QGraphicsScene
-
Hello to all,
I have subclassed a QGraphicsScene in order to display an image in a QGraphicsView.But I initialize the Canvas as it seems bellow in the canvas.cpp file
@Canvas::Canvas(): QGraphicsScene(0,0,128,128)
{
}@where 128x128 is the size of the displayed image.In my mainwindow.cpp file I have created an object
@Canvas *scene;@How could I set the size of the scene in my mainwindow?In this case the constructor should be like this?
@Canvas::Canvas()
{
}@ -
I want to set the size of scene which is subclassed from QGraphicsScene if I know the width and length of this scene.
I want to use this@Canvas::Canvas()
{
}@and not this to initialize the constructor of canvas
@Canvas::Canvas(): QGraphicsScene(0,0,128,128)
{
}@where Canvas *scene;
-
setSceneRect()
-
To be more specific I use a push button event and every time I press the button I run this function.But ecery time I am loading first a small image and then a bigger, everything is fine.When I am loading first a bigger image and then a smaller,then I do not take the image scaled in the hole QGraphicsView, but it is displayed in the middle of the QGraphicsView without been scaled.Could somebode help me to solve this problem?
@void MainWindow::push_button_File(void)
{
ui->graphicsView_inputImage->setSceneRect(0,0,size_x,size_y);QPixmap tmpmap (fileName, 0, Qt::AutoColor);
if (!pixmapItem) {
pixmapItem = scene->addPixmap (tmpmap);
ui->graphicsView_inputImage->setScene(scene);
ui->graphicsView_inputImage->scale(ui->graphicsView_inputImage->width()/scene->width(),
ui->graphicsView_inputImage ->height()/scene->height());
} else {
pixmapItem->setPixmap(tmpmap);} @
}
-
@Canvas::Canvas(int x, int y, int width, int height) : QGraphicsScene(0,0,128,128)
{}@
And set the screen to the view with
@Canvas *scene;
view->setScene(scene);
@But I wonder whey do you want to create a class Canvas. You can directly create QGraphicsScene with what ever size you want and directly set it to QGraphicsView.
@ QGraphcisView view;
view->setScene(new QGraphicsScene(0,0,128.128); @