[英]Get current visible QListWidget items
有没有办法让我可以在 QListWidget 的可见区域中显示当前项目
我已经尝试过这个示例代码,但它只返回列表的第一项。
def get_visible_cameras(listWidget):
rect = listWidget.viewport().contentsRect()
top = listWidget.indexAt(rect.topLeft())
if top.isValid():
bottom = listWidget.indexAt(rect.bottomLeft())
if not bottom.isValid():
bottom = listWidget.model().index(listWidget.count() - 1)
for index in range(top.row(), bottom.row() + 1):
yield listWidget.item(index)
任何在其定义中包含yield
函数都将返回一个生成器。 为了获得所有项目,您需要遍历此生成器,即执行类似的操作
for item in get_visible_cameras(listWidget):
do_something_with(item)
如果您只想返回项目列表,则可以执行以下操作:
def get_visible_cameras(listWidget):
rect = listWidget.viewport().contentsRect()
top = listWidget.indexAt(rect.topLeft())
result = []
if top.isValid():
bottom = listWidget.indexAt(rect.bottomLeft())
if not bottom.isValid():
bottom = listWidget.model().index(listWidget.count() - 1)
for index in range(top.row(), bottom.row() + 1):
result.append(listWidget.item(index))
return result
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.