У меня 2 столбца. Один из столбцов заполнен большим количеством QWidget. Когда я помещаю виджет в столбец, я вызываю этот метод:
void MainWindow::scrollToItem(Product_View *item) {
QPoint point = item->mapToParent(QPoint());
ui->scrollArea->ensureVisible(point.x(), point.y());
}
Когда я нахожусь внизу первого столбца и перетаскиваю виджет в следующий. Область прокрутки правильно прокручивается вниз, чтобы я мог видеть, где я ее уронил.
Но когда я возвращаю виджет обратно в первый столбец, он прокручивается, но не полностью вниз. Его размер составляет около 150 пикселей (EDIT: 150 пикселей не соответствует действительности. Я вижу только около 5 пикселей виджета)
Кто-нибудь может мне помочь?
РЕДАКТИРОВАТЬ:
может быть, полезно знать мой макет.
У меня есть главное окно с QScrollArea
. ScrollArea имеет QWidget
с именем scrollAreaWidgetContents
и имеет QHBoxLayout. Виджет имеет 5 столбцов. И у них есть QVBoxLayout для моих виджетов перетаскивания.
ДРУГОЕ ИЗМЕНЕНИЕ:
Я заметил, что это идет не так только с последним пунктом.
ПРОСТО ПРОДОЛЖАЮ РЕДАКТИРОВАТЬ
Теперь мне ясно, что полоса прокрутки просто не опускается до конца.
QScrollBar *bar = ui->scrollArea->verticalScrollBar();
bar->setValue(bar->maximum());
Этот код также показывает такое же поведение. Что мне делать с этой веткой? И стоит ли создавать новый?