diff --git a/src/quick/items/qquicktableview.cpp b/src/quick/items/qquicktableview.cpp index 42bc7309e0..ec8713a228 100644 --- a/src/quick/items/qquicktableview.cpp +++ b/src/quick/items/qquicktableview.cpp @@ -44,6 +44,12 @@ using the \l HorizontalHeaderView and \l VerticalHeaderView from Qt Quick Controls. + \note TableView will only \l {isRowLoaded()}{load} as many delegate items as + needed to fill up the view. There is no guarantee that items outside the view + will be loaded, although TableView will sometimes pre-load items for + optimization reasons. Hence, a TableView with zero width or height might not + load any delegate items at all. + \section1 Example Usage \section2 C++ Models @@ -5640,7 +5646,7 @@ int QQuickTableView::currentColumn() const void QQuickTableView::positionViewAtRow(int row, PositionMode mode, qreal offset, const QRectF &subRect) { Q_D(QQuickTableView); - if (row < 0 || row >= rows()) + if (row < 0 || row >= rows() || d->loadedRows.isEmpty()) return; // Note: PositionMode::Contain is from here on translated to (Qt::AlignTop | Qt::AlignBottom). @@ -5706,7 +5712,7 @@ void QQuickTableView::positionViewAtRow(int row, PositionMode mode, qreal offset void QQuickTableView::positionViewAtColumn(int column, PositionMode mode, qreal offset, const QRectF &subRect) { Q_D(QQuickTableView); - if (column < 0 || column >= columns()) + if (column < 0 || column >= columns() || d->loadedColumns.isEmpty()) return; // Note: PositionMode::Contain is from here on translated to (Qt::AlignLeft | Qt::AlignRight). diff --git a/tests/auto/quick/qquicktableview/data/zerosizedtableview.qml b/tests/auto/quick/qquicktableview/data/zerosizedtableview.qml index c8d6168b81..5b43553f22 100644 --- a/tests/auto/quick/qquicktableview/data/zerosizedtableview.qml +++ b/tests/auto/quick/qquicktableview/data/zerosizedtableview.qml @@ -15,6 +15,14 @@ Item { width: 0 height: 0 delegate: tableViewDelegate + + Component.onCompleted: { + positionViewAtCell( + Qt.point(0,0), + TableView.AlignHCenter, + Qt.point(-5,-5) + ); + } } Component {