python qtablewidge添加复选框功能
时间: 2023-05-04 18:04:06 浏览: 174
Pyqt5 QTableWidget/QTableView 行表头添加复选框全选功能
5星 · 资源好评率100%
QTableWidget是PyQt中常用的表格控件,可以在单元格中显示数据,但有时需要在某一行或某多行前面添加一个复选框,以实现批量操作或筛选等功能。下面将详细说明如何在QTableWidget中添加复选框功能。
首先需要导入QCheckBox,使用setCellWidget方法将复选框添加到指定的单元格中,设置信号与槽函数,即可实现在QTableWidget中添加复选框的功能。
示例代码如下:
```
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidgetItem, QTableWidget, QCheckBox
from PyQt5.QtCore import Qt
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('QTableWidget添加复选框')
self.setGeometry(100, 100, 400, 300)
#定义表格控件
self.tableWidget = QTableWidget()
self.tableWidget.setColumnCount(3)
self.tableWidget.setRowCount(3)
self.tableWidget.setHorizontalHeaderLabels(['姓名', '年龄', '选择'])
#创建复选框控件
checkBox = QCheckBox()
checkBox.setCheckState(Qt.Unchecked)
#设置复选框控件到表格的第0行第2列
self.tableWidget.setCellWidget(0, 2, checkBox)
#连接信号与槽函数
checkBox.stateChanged.connect(self.checkBoxStateChanged)
self.setCentralWidget(self.tableWidget)
#复选框状态改变的槽函数
def checkBoxStateChanged(self, state):
if state == Qt.Checked:
print('复选框被选中')
else:
print('复选框被取消选中')
if __name__ == '__main__':
app = QApplication(sys.argv)
myWin = MyWindow()
myWin.show()
sys.exit(app.exec_())
```
以上示例代码中,我们在QTableWidget的第一行第三列添加了一个复选框,并实现了当复选框状态改变时触发槽函数的功能。
对于需要在多行中添加复选框,我们可以使用for循环来逐行进行添加,具体实现方式类似上述代码示例。
总之,通过使用setCellWidget方法和信号与槽函数,我们可以在QTableWidget中轻松添加复选框功能,大大提高了该控件的灵活性和实用性。
阅读全文