tablewidget 中添加 checkbox 示例
时间: 2023-11-03 21:04:16 浏览: 200
添加 `QCheckBox` 到 `QTableWidget` 中需要两个步骤:
1. 创建 `QCheckBox` 对象并添加到 `QTableWidget` 中的单元格中。
2. 将 `QCheckBox` 对象与 `QTableWidget` 中的行或列关联,以便在单击复选框时可以获取相应的行或列。
以下是一个添加复选框到 `QTableWidget` 的示例代码:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QCheckBox, QHBoxLayout, QWidget, QHeaderView
from PyQt5.QtCore import Qt
app = QApplication([])
# 创建一个 QTableWidget
table = QTableWidget()
# 设置表格的行数和列数
table.setRowCount(5)
table.setColumnCount(2)
# 为每个单元格添加复选框
for row in range(5):
for col in range(2):
# 创建一个 QCheckBox
checkbox = QCheckBox()
# 将 QCheckBox 放到 QHBoxLayout 中,以便在表格中居中对齐
layout = QHBoxLayout()
layout.addWidget(checkbox)
layout.setAlignment(Qt.AlignCenter)
# 创建一个 QWidget,将 QHBoxLayout 设置为其布局,并将 QWidget 设置为单元格的小部件
widget = QWidget()
widget.setLayout(layout)
# 将 QWidget 设置为单元格的小部件
table.setCellWidget(row, col, widget)
# 设置表头
table.setHorizontalHeaderLabels(['Column 1', 'Column 2'])
# 调整列宽
table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
# 显示表格
table.show()
app.exec_()
```
此示例将在 `QTableWidget` 中创建一个 5 x 2 的表格,并为每个单元格添加一个复选框。复选框将放置在 `QHBoxLayout` 中,并在表格中居中对齐。然后,将 `QHBoxLayout` 放置在 `QWidget` 中,并将该小部件设置为单元格的小部件。最后,将 `QCheckBox` 对象与 `QTableWidget` 中的行或列关联,以便在单击复选框时可以获取相应的行或列。
阅读全文