discipuli
@discipuli
Студент

Как удалить строку qtablewidget с помошью кнопки в этой строке?

Есть программа на pyqt5.
Имеется вот такой милый класс, вызывается откуда то из недр программы.
import PyQt5.QtWidgets as qtw
import dialog

class blablabla(qtw.QDialog, dialog.Ui_dialog):# dialog.Ui_dialog тупа описание интерфайса диалога
    ...
    def add(self):
        self.table.insertRow(self.table.rowCount())
        self.table.setItem(self.table.rowCount()-1, 0, qtw.QTableWidgetItem("Put smth here"))
        self.table.setItem(self.table.rowCount()-1, 1, qtw.QTableWidgetItem("Put smth here"))
        ...
        btn = qtw.QPushButton("Remove")
        self.table.setCellWidget(self.table.rowCount()-1, self.table.columnCount()-1, btn)

Я хочу тыкая на `btn` удалять соответствующую строчку.
Как это реализовать онлайн без регистрации(то есть максимально лаконично и по феншую)?
  • Вопрос задан
  • 566 просмотров
Решения вопроса 1
discipuli
@discipuli Автор вопроса
Студент
Я по ходу забанил себя в гугле.
Кароче вот решение.

import PyQt5.QtWidgets as qtw
import dialog

class blablabla(qtw.QDialog, dialog.Ui_dialog):# dialog.Ui_dialog тупа описание интерфайса диалога
    ...
    def add(self):
        self.table.insertRow(self.table.rowCount())
        self.table.setItem(self.table.rowCount()-1, 0, qtw.QTableWidgetItem("Put smth here"))
        self.table.setItem(self.table.rowCount()-1, 1, qtw.QTableWidgetItem("Put smth here"))
        ...
        btn = qtw.QPushButton("Remove")
        self.table.setCellWidget(self.table.rowCount()-1, self.table.columnCount()-1, btn)
        btn.clicked.connect(self.removecurrentrow)

    def removecurrentrow(self):
        button = self.sender()
        if button:
            row = self.table.indexAt(button.pos()).row()
            self.table.removeRow(row)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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