Делаю составной виджет. Если упростить, то выглядит он так: в лэйауте лежит QGraphicsView. При изменении размеров виджета graphicsView, соответственно, тоже должен растягиваться.
Уже второй день пытаюсь разобраться как сделать, чтобы вместе с graphicsView растягивалась и сцена.
К примеру, начальный размер виджета 200х32. Сцена и вью имеют такие же размеры.
resize(200, 32);
ui.graphicsView->setScene(scene);
ui.graphicsView->setSceneRect(0, 0, 200, 32);
void MyWidget::resize(int w, int h){
QMatrix m = ui.graphicsView->matrix();
m.setMatrix(w/200.0, m.m12(), m.m21(), h/32.0, m.dx(), m.dy());
ui.graphicsView->setMatrix(m);
ui.graphicsView->setSceneRect(0, 0, 200, 32);
}
scene->addRect(0, 0, 200, 32);
чисто телепатически, спасёт
update();
вот у меня такой слот есть, подгоняет размер сцены под субокошко в котором отображается сцена:
void MdiChild::fit()
{
QRectF r = scene->sceneRect();
view->fitInView(r, Qt::KeepAspectRatio);
}
может подойдёт тебе на ресайз
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)