@Johnem

Как сделать кнопку в ячейке QTableWidget?

Здравствуйте, я создал таблицу, в ней 4 столбца и n строк. В первом столбце QSpinBox, во втором QComboBox, третий - просто ячейка, и четвертый кнопка (QPushButton). Как разместить и установить в столбцах (в конкретных виджетах) информацию я вроде разобрался (если я сделал это не правильно, или можно сделать лучше, пожалуйста, напишите как),
но у меня возникли проблемы с считыванием информации с виджетов, в особенности с кнопками (ведь, по нажатии на кнопку, расположенную в i-ой строке i-ая строка должна удаляться). Как посоветуете реализовать подобную задумку?
То, как я "устанавливаю" таблицу:
def set_table(self):
        table = self.te.get_table() #Просто список списков

        self.ui.table.setRowCount(len(table))
        self.ui.table.setColumnCount(4)

        self.ui.table.setColumnWidth(0, 50)
        self.ui.table.setColumnWidth(1, 150)
        self.ui.table.setColumnWidth(2, 500)
        self.ui.table.setColumnWidth(3, 20)

        for i in range(len(table)):
            self.ui.table.setRowHeight(i, 20)

            lang = QtWidgets.QComboBox()
            lang.addItems(open('langs.txt', encoding='utf-8').read().split('\n')) #В lang.txt просто название языков через \n
            lang.setCurrentIndex(table[i][1] + 1)

            id_ = QtWidgets.QSpinBox()
            id_.setValue(table[i][0])

            del_row_ = QtWidgets.QPushButton()
            del_row_.clicked.connect(self.ui.table.removeRow) #Я пытался передавать в ф-цию i, но не чего не вышло

            self.ui.table.setCellWidget(i, 0, id_)
            self.ui.table.setCellWidget(i, 1, lang)
            self.ui.table.setItem(i, 2, QTableWidgetItem(str(table[i][2])))
            self.ui.table.setCellWidget(i, 3, del_row_)
        self.ui.table.setHorizontalHeaderLabels(('ID', 'Язык', 'Текст', ''))

Зарание сапсибо!
  • Вопрос задан
  • 763 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Johnem Автор вопроса
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы