Изменение размера виджета QGraphicsView на макете - PullRequest
0 голосов
/ 12 октября 2018

Это звучит как вопрос, который задавался здесь ранее, но я не могу найти то, что я ищу.

Итак, у меня есть вертикальная компоновка, содержащая QGraphicsView. I 'Я пытаюсь реализовать для пользователя возможность изменять размер представления с учетом любого желаемого размера. Как и в MSPaint, вы можете выбрать точный размер для холста.

Когда я запускаю программу, это отлично работает в первый раз.время и по вертикали я получаю QGraphicsView точного размера, который я указал, однако, когда функция resizeCanvas вызывается во время выполнения, я не получаю тот же эффект.

Вместо этого я QGraphicsViewбудет выглядеть так же, как если бы указанные значения были больше, чем существующие (например, установка QGraphicsScene 800x600 на 400x300),

или если верно обратное (QGraphicsScene 400x300 изменяется на800x600), я получу полосы прокрутки, а не увеличенный виджет QGraphicsView.

canvasScene = new QGraphicsScene(this);
resizeCanvas(canvasWidth, canvasHeight);
void MainWindow::resizeCanvas(int x, int y) {
    canvasWidth = x;
    canvasHeight = y;
    canvasScene->setSceneRect(100, 100, canvasWidth, canvasHeight);
    updateCanvas();
}
void MainWindow::updateCanvas() {
    ui->canvas->setScene(canvasScene);
}

Как мне изменить его размер?актуальный виджет?

1 Ответ

0 голосов
/ 13 октября 2018

Моим решением было просто установить геометрию QGraphicsView для новых значений, заданных

...