Witam, chciałbym poprosić o pomoc w następującej sprawie.
Nie wiem co mam zrobić, aby można było korzystać z suwaków, gdy obraz jest większy od okna, w którym jest wyświetlany. Wyświetlam obraz w następujący sposób. Stworzyłem klasę Image, której rodzicem jest QWidget. Image posiada funkcję void paintEvent. W tej funkcji tworzę obiekt QImage. W pętli za pomocą funkcji QImage - setpixel tworzę obraz, który następnie rysuję wykorzystując funkcję QPainter - drawImage. W mainwindow tworzę obiekt klasy Image oraz QVBoxLayout, do którego dodaje stworzony prze ze mnie widget Image. Próbowałem wykorzystać klasę QScrollArea, w ten sposób:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
im=new Image();
QVBoxLayout *l=new QVBoxLayout(this->ui->graphicsView);
l->addWidget(im);
connect(ui->actionPowieksz,SIGNAL(triggered()),this,SLOT(powie()));
connect(ui->actionPomniejsz,SIGNAL(triggered()),this,SLOT(pomn()));
connect(ui->actionOdswiez,SIGNAL(triggered()),this,SLOT(odsw()));
connect(ui->actionOtw_rz,SIGNAL(triggered()),this,SLOT(open()));
im->start=1;
scrollArea = new QScrollArea;
scrollArea->setBackgroundRole(QPalette::Dark);
scrollArea->setWidget(im);
}
Jednak wtedy nic się nie wyświetla. Próbowałem też po prostu rysować w graphicsView, który ma w sobie suwaki, ale są nieaktywne, gdy rysowany obraz nie mieści się.
Pozdrawiam