qt tabel widget 过滤None为空白 Python
时间: 2024-10-12 15:10:29 浏览: 21
Qt TableWidget是一个在PyQt库中非常流行的组件,用于显示表格数据。如果你想过滤掉None值或空白字符串,可以利用Python的条件检查和TableWidget的数据绑定功能来实现。
首先,在设置数据模型(如QStandardItemModel或QSqlTableModel)时,当添加或更新元素时,你可以对每个条目进行检查:
```python
def add_data_to_table(item):
# 检查item是否为None或空字符串
if item is None or (isinstance(item, str) and not item.strip()):
return # 如果是,跳过添加
# 正常添加到tablemodel
model.appendRow([QStandardItem(str(item))])
# 然后在填充数据时调用这个函数
data = ... # 聚集的数据列表
for d in data:
add_data_to_table(d)
```
如果你使用的是QTableView展示数据,可以在信号槽连接里处理过滤:
```python
view.model().dataChanged.connect(lambda index1, index2: filter_empty_items(index1, index2))
def filter_empty_items(start, end):
for row in range(start.row(), end.row() + 1):
for column in range(start.column(), end.column() + 1):
item = view.model().item(row, column)
if item is None or (isinstance(item.text(), str) and not item.text().strip()):
view.hideRow(row)
break
```
阅读全文