如何将QListWidget中的可见条目提取生成列表
QListWidget提取可见条目实现方法
核心逻辑:直接调用QListWidgetItem自带的isHidden()方法判断条目显隐状态,遍历全量条目筛选即可,适配任意显隐规则(包括用户自定义输入控制显示数量的场景)。
代码示例
Python(PyQt/PySide全版本通用)
# 初始化可见条目列表 list_of_visible_items = [] # 遍历QListWidget所有条目 for i in range(your_listwidget.count()): item = your_listwidget.item(i) # 筛选未隐藏的条目 if not item.isHidden(): # 如果只需要文本可以替换为 item.text() list_of_visible_items.append(item) print(list_of_visible_items)
C++ Qt 写法
QList<QListWidgetItem*> list_of_visible_items; // 遍历所有条目 for (int i = 0; i < ui->your_listwidget->count(); i++) { QListWidgetItem *item = ui->your_listwidget->item(i); if (!item->isHidden()) { list_of_visible_items.append(item); } } // 打印调试示例 qDebug() << list_of_visible_items;
注意事项
- 如果只需要获取可见条目的文本内容,将代码中添加item的逻辑替换为提取
item->text()(C++)/item.text()(Python)即可直接得到字符串列表 - 动态调整显示数量的场景下,建议在用户输入完成、条目显隐逻辑执行完毕后再调用上述筛选代码,保证拿到的是最新的可见结果
- 不需要手动计算控件高度、条目坐标做判断,Qt原生的
isHidden()接口不受滚动、布局缩放、DPI适配等场景影响,稳定性最高
内容的提问来源于stack exchange,提问作者user16817750
相关产品推荐
相关产品推荐

