【问题标题】:Python - Add checkbox to every row in QTableWidgetPython - 将复选框添加到 QTableWidget 中的每一行
【发布时间】:2017-01-23 11:37:11
【问题描述】:

我正在尝试为 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)

我是否遗漏了一些明显的东西?

我还查看了以下帖子:

【问题讨论】:

    标签: python pyqt qtablewidget qcheckbox


    【解决方案1】:

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

    for col in [1]:
        chkBoxItem = QTableWidgetItem()
        chkBoxItem.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
        chkBoxItem.setCheckState(QtCore.Qt.Unchecked)       
        qTable.setItem(row,col,chkBoxItem)
    

    【讨论】:

      【解决方案2】:
      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)
      

      【讨论】:

        猜你喜欢
        • 2018-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-20
        • 2011-07-19
        • 1970-01-01
        • 1970-01-01
        • 2012-06-05
        相关资源
        最近更新 更多