再添加一个 qlistview 控件 设置4行数据,每行也添加qcheckbox,并添加一个类方法,获得qlistview 中被选中的行号
时间: 2024-04-17 17:25:28 浏览: 114
获取jqGrid中选择的行的数据
5星 · 资源好评率100%
以下是一个示例代码,演示了如何使用 QListWidget 添加数据和复选框,并创建一个类方法来获取 QListWidget 中被选中的行号:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QListWidget, QCheckBox
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建 QListWidget
self.listWidget = QListWidget(self)
self.setCentralWidget(self.listWidget)
# 添加数据和复选框
for i in range(4):
item = QListWidgetItem()
checkBox = QCheckBox()
self.listWidget.addItem(item)
self.listWidget.setItemWidget(item, checkBox)
@staticmethod
def get_selected_rows(list_widget):
selected_rows = []
for row in range(list_widget.count()):
item = list_widget.item(row)
checkbox = list_widget.itemWidget(item)
if checkbox.isChecked():
selected_rows.append(row)
return selected_rows
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
# 获取被选中的行号并打印
selected_rows = window.get_selected_rows(window.listWidget)
print(selected_rows)
app.exec_()
```
在上面的示例中,我们创建了一个包含 4 行数据的 QListWidget,并为每一行添加了一个 QCheckBox。在 `get_selected_rows` 方法中,我们遍历 QListWidget 的每一行,获取每一行的项和对应的复选框,检查复选框是否被选中,如果被选中,则将行号添加到 `selected_rows` 列表中。最后,我们打印出被选中的行号。
你可以根据实际需求修改示例代码来适应你的应用程序。希望对你有所帮助!
阅读全文