def list1_selected_items(self): selected_items = self.listWidget.selectedItems() list_1 = [item.text() for item in selected_items] print(list_1) for item in list_1: self.tableWidget.setRowCount(0) for i in range(20): data0 = worksheet02.cell(i+2, 2).value if data0 == item: print(data0) for j in range(5): room_name = worksheet02.cell(i+2, j+3).value if room_name == None: pass else: print(room_name) row = self.tableWidget.rowCount() self.tableWidget.insertRow(row) self.tableWidget.setItem(row, 0, QTableWidgetItem(room_name));在以上代码中,为什么当listwidget多选时,tablewidget只添加了其中一个的对于内容
时间: 2024-02-10 22:16:58 浏览: 35
根据代码,每次执行`self.tableWidget.setRowCount(0)`都会将表格的行数设为0,所以每次循环添加数据时都会覆盖之前的数据,导致只显示了最后一个选中项的内容。解决方法是在循环添加数据前,先将表格的行数设为选中项的总数,即`self.tableWidget.setRowCount(len(list_1))`。这样就能保证每个选中项对应的内容都能添加到表格中。
相关问题
OpenFile.SelectedItems._NewEnum
`OpenFile` 是 `FileDialog` 对象,它包含了用户在文件对话框中选择的文件路径。`SelectedItems` 是 `FileDialog` 对象的一个属性,它是一个集合对象,包含了用户选择的所有文件的完整路径。`_NewEnum` 是 `SelectedItems` 属性的一个默认成员,它返回一个迭代器对象,可以用于遍历集合中的所有元素。
在使用 `SelectedItems` 属性时,如果需要遍历集合中的所有元素,可以使用 `For Each` 循环结构和 `_NewEnum` 成员来实现。例如:
```python
For Each selectedItem in OpenFile.SelectedItems
' 对每个选择的文件进行操作
Next
```
这样就可以遍历 `SelectedItems` 集合中的所有元素并对每个文件进行操作。
If ListView2.Items(i).Text = ListView1.SelectedItems(0).Text
如果ListView2.Items(i).Text等于ListView1.SelectedItems(0).Text,那么ListView2.Items(i).Text和ListView1.SelectedItems(0).Text的值是相同的。