2列あります。列の1つはたくさんのQWidgetsで埋められています。ウィジェットを列にドロップすると、次のメソッドが呼び出されます。
void MainWindow::scrollToItem(Product_View *item) {
QPoint point = item->mapToParent(QPoint());
ui->scrollArea->ensureVisible(point.x(), point.y());
}
最初の列の一番下にいて、次の列にウィジェットをドラッグしたとき。スクロールエリアは下に適切にスクロールするので、ドロップした場所を確認できます。
しかし、ウィジェットを最初の列に戻すと、スクロールしますが、完全に一番下まではスクロールしません。その約150px(編集:150pxは真実ではありません。ウィジェットの約5pxしか表示されません)
誰か助けてもらえますか?
編集:
私のレイアウトを知っておくといいかもしれません。
が付いたメインウィンドウがありQScrollArea
ます。scrollAreaにはがQWidget
呼び出されscrollAreaWidgetContents
、QHBoxLayoutがあります。ウィジェットには5つの列があります。そして、これらにはドラッグアンドドロップウィジェット用のQVBoxLayoutがあります。
JEEZ別の編集:
私はそれが最後のアイテムでのみうまくいかないことに気づきます。
私はただ編集を続けます
スクロールバーが完全に下がっていないことは、今では明らかです。
QScrollBar *bar = ui->scrollArea->verticalScrollBar();
bar->setValue(bar->maximum());
このコードも同じ動作を示しています。このスレッドをどうすればよいですか?そして、私は新しいものを作成する必要がありますか?