繁体   English   中英

获取当前可见的 QListWidget 项

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM