как добавить QpushButton в каждую строку внутри QTablewidget

Мне нужно добавить кнопку внутри каждого ряда в моей таблице, вот мой код:

    queue = 1
    test_list = [1,5,51,651,651,651,651,651,651,651,651,651,64,8,54,564,984,654,984,654,84,651,81,651,8,165,18,16,19,88]
    for item in test_list:
        self.button = QtGui.QPushButton(self.tableWidget)
        rowPosition = self.tableWidget.rowCount()
        self.tableWidget.insertRow(rowPosition)
        self.tableWidget.setItem(rowPosition , 0, QtGui.QTableWidgetItem("text" + str(item)))
        self.tableWidget.setItem(rowPosition , 1, QtGui.QTableWidgetItem("text" + str(item)))
        self.tableWidget.setItem(rowPosition , 2, QtGui.QTableWidgetItem("text" + str(item)))
        self.tableWidget.setItem(rowPosition , 3, QtGui.QTableWidgetItem("text" + str(item)))
        self.tableWidget.setItem(rowPosition , 4, QtGui.QTableWidgetItem("text" + str(item)))
        self.tableWidget.setItem(rowPosition , 5, QtGui.QTableWidgetItem(self.button))
        self.tableWidget.setItem(rowPosition , 6, QtGui.QTableWidgetItem(str(queue)))
        queue += 1

я получаю эту ошибку каждый раз, когда я запускаю проект

QTableWidgetItem(QTableWidgetItem): argument 1 has unexpected type 'QPushButton'


person Ahmed Wagdi    schedule 01.07.2018    source источник


Ответы (1)


Если вы ссылаетесь на документацию QTableWidget, посмотрите на сигнатуру метода из setItem:

QTableWidget.setItem (я, строка int, столбец int, элемент QTableWidgetItem)

Вот почему вы получаете ошибку. Метод ожидает QTableWidgetItem, а вы даете ему QPushButton.

Вам нужен метод setCellWidget (документация).

person Beöbe    schedule 01.07.2018