我有2列。其中一列填充了大量QWidgets。 當我在一列拖放一個widget我調用這個方法:Qt ensureVisible()在QScrollArea中不起作用
void MainWindow::scrollToItem(Product_View *item) {
QPoint point = item->mapToParent(QPoint());
ui->scrollArea->ensureVisible(point.x(), point.y());
}
當我在第一列的底部,我的下一個拖一個小部件。 Scrollarea正確地滾動到底部,以便我可以看到我放下它的位置。
但是,當我將小部件放回到第一列時,它會滾動但不完全到底部。它的約150px(編輯:150px是不正確的,我只看到約5px的小工具)
任何人都可以幫助我嗎?
編輯:
也許很高興知道我的佈局。
我有一個主窗口QScrollArea
。 scrollArea有一個QWidget
,叫做scrollAreaWidgetContents
,它有一個QHBoxLayout。 小部件有5列。而且這些對我的拖放小部件有QVBoxLayout。
哎呀ANOTHER編輯:
我注意到那就只錯的最後一個項目。
我只是繼續編輯
現在很清楚,我認爲滾動條只是不會一路下滑。
QScrollBar *bar = ui->scrollArea->verticalScrollBar();
bar->setValue(bar->maximum());
此代碼也顯示相同的行爲。我該怎麼處理這個線程?我應該創建一個新的?
感謝您的回覆。你正確的使用'ensureWidgetVisible'。但我之前做過這些,結果相同。 – HansElsen