请教大神,怎么能够获取到ListWidget中显示的内容在QListWidgetItems中的哪个范围;
比如现在ListWidget中有100个Item, 但是现在显示在屏幕上的只有10个,其他的需要通过scrollbar来显示。
那怎样才能确定现在显示的Item在QListWidgetItems中位于哪个范围? 比如是15-25的。
想知道怎么能确定这个范围?
QListWidgetItems ListWidget scrollbar
------解决方案--------------------
参考这个函数:
QModelIndex QAbstractItemView::indexAt(const QPoint & point) const [pure virtual]
Returns the model index of the item at the viewport coordinates point.
viewport的可见rect是能够取得的,然后计算最上面和最下面可见的index就容易了。
------解决方案--------------------
对于较大的模型,建议你使用QListView和QstandardModel的modelView模型。而不要使用ListWidget这种类型。
除了一楼的方法,你还可以试一下下面的函数。
QScrollBar::
void setMaximum ( int )
void setMinimum ( int )
void setPageStep ( int )
思路是,你有多少张图片,你就设置最大值是多少,然后设置Step每一行的图片数。那么就可以从scrollBar的当前值,读出现在大概显示的是哪些图片了。函数如:int sliderPosition () const