我有 2 列。其中一列充满了许多 QWidget。当我在列中放置一个小部件时,我调用此方法:
void MainWindow::scrollToItem(Product_View *item) {
QPoint point = item->mapToParent(QPoint());
ui->scrollArea->ensureVisible(point.x(), point.y());
}
当我在第一列的底部并在下一个中拖动一个小部件时。滚动区域正确滚动到底部,以便我可以看到我将其放置在哪里。
但是当我将小部件放回第一列时,它会滚动但不会完全滚动到底部。它的大约 150 像素(编辑:150 像素不是真的。我只看到大约 5 像素的小部件)
有谁能够帮我?
编辑:
也许很高兴知道我的布局。
我有一个带有QScrollArea
. scrollArea 有一个QWidget
被调用的scrollAreaWidgetContents
,它有一个 QHBoxLayout。该小部件有 5 列。这些具有用于我的拖放小部件的 QVBoxLayout。
天哪,另一个编辑:
我注意到只有最后一项出错了。
我只是继续编辑
我现在很清楚滚动条并没有一直向下。
QScrollBar *bar = ui->scrollArea->verticalScrollBar();
bar->setValue(bar->maximum());
此代码也显示相同的行为。我应该怎么处理这个线程?我应该创建一个新的吗?