Здравствуйте, я создал таблицу, в ней 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', 'Язык', 'Текст', ''))
Зарание сапсибо!