Python-将复选框添加到QTableWidget中的每一行

Python-将复选框添加到QTableWidget中的每一行,python,pyqt,qtablewidget,qcheckbox,Python,Pyqt,Qtablewidget,Qcheckbox,我试图向QTableWidget中的每一行添加一个复选框,不幸的是它似乎只出现在第一行。这是我的密码: data = ['first_row', 'second_row', 'third_row'] nb_row = len(data) nb_col = 2 qTable = self.dockwidget.tableWidget qTable.setRowCount(nb_row) qTable.setColumnCount(nb_col) chkBoxItem = QTableWidget

我试图向QTableWidget中的每一行添加一个复选框,不幸的是它似乎只出现在第一行。这是我的密码:

data = ['first_row', 'second_row', 'third_row']
nb_row = len(data)
nb_col = 2

qTable = self.dockwidget.tableWidget
qTable.setRowCount(nb_row)
qTable.setColumnCount(nb_col)
chkBoxItem = QTableWidgetItem()

for row in range(nb_row):
    for col in [0]:
        item = QTableWidgetItem(str(data[row]))
        qTable.setItem(row,col,item)
    for col in [1]:
        chkBoxItem.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
        chkBoxItem.setCheckState(QtCore.Qt.Unchecked)       
        qTable.setItem(row,col,chkBoxItem)
我错过了什么明显的东西吗

我还查看了以下帖子:


好的,我只需将
chkBoxItem=QTableWidgetItem()
放在最后一个循环中(我想它必须为每一行创建一个新的
QTableWidgetItem()
项……:


好的,我只需要将
chkBoxItem=QTableWidgetItem()
放入最后一个循环中(我想它必须为每一行创建一个新的
QTableWidgetItem()
item…):

for col in [1]:
    chkBoxItem = QTableWidgetItem()
    chkBoxItem.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
    chkBoxItem.setCheckState(QtCore.Qt.Unchecked)       
    qTable.setItem(row,col,chkBoxItem)
self.ui.tableWidget.setColumnCount(4)
self.ui.tableWidget.setRowCount(4)
self.ui.tableWidget.verticalHeader().setVisible(False)
self.ui.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

alaaa = ['Source Image', 'Dimension', 'Format', "File size"]
self.ui.tableWidget.setHorizontalHeaderLabels(alaaa)

for row, string in enumerate(alaaa, 0):
    chkBoxItem = QTableWidgetItem(string)
    chkBoxItem.setText(string)
    chkBoxItem.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
    chkBoxItem.setCheckState(QtCore.Qt.Unchecked)
    self.ui.tableWidget.setItem(row, 0, chkBoxItem)