изменить размер проблемы в области прокрутки - PullRequest
0 голосов
/ 27 июня 2011

Привет всем, вот мой код:

myplot *p = new myplot(gao.structpayloadgraph, 
                       gao1.structpayloadgraph, 
                       gao.structcol-2, "payload");

ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
ui->scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
ui->scrollArea->setWidgetResizable(false);
p->resize(ui->scrollArea->size().width(), ui->scrollArea->size().height());

ui->scrollArea->setWidget(p);

Я хочу, чтобы p занял все доступное пространство области полосы прокрутки и уместился. Тем не менее, внешний вид выглядит «сжатым», хотя я и вызвал функцию изменения размера. Что я должен сделать, чтобы достичь желаемого эффекта?

Ответы [ 2 ]

1 голос
/ 27 июня 2011

Вы должны обрабатывать виджет содержимого области прокрутки как обычный QWidget. Если вам нужно автоматическое изменение размера, и вы должны использовать макеты в Qt. Попробуйте следующее:

QVBoxLayout layout = new QVBoxLayout( ui->scrollAreaContent);
layout->setMargin(0);
layout->setContentsMargins(0,0,0,0);
layout->setSpacing(0);
ui->scrollAreaContent->setLayout( layout);
layout->addWidget(p);

ПРИМЕЧАНИЕ: ui->scrollAreaContent - это предположение, но я думаю, что вы используете ui файлы, а виджет контента по умолчанию назван так ...

0 голосов
/ 29 августа 2016

Перейдите в верхний правый экран конструктора создателя QT (Object, Class), щелкните правой кнопкой мыши строку QScrollArea и выберите пункт меню «Layout», выберите макет (например, вертикальный или горизонтальный макет), убедитесь, чтоВаш QWidget имеет политику минимального или более высокого размера.Ваш виджет прокрутки теперь должен изменить размер с макетом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...