Rimush
@Rimush

Почему при удаление QtWidgets.QLineEdit на котором есть событие, приложение закрывается?

class LineEdit(object):

    def __init__(self, parent, text=None, layout=None):
        self.parent = parent
        self.entity = QtWidgets.QLineEdit(parent=self.parent.handle)
        self.entity.setObjectName("line_edit")
        self.text = text
        self.set_text(text)
        self.event = None

        if layout is not None:
            layout.addWidget(self.entity)

    def set_text(self, text):
        self.text = text
        self.entity.setText(self.text)

    def set_event(self, event):
        self.event = event
        self.entity.textChanged.connect(self.event)

    def delete(self):
        self.entity.deleteLater()


Создаю много LineEdit, вещаю на каждый вешаю событие.
Потом по очереди удаляю все LineEdit и скрипт просто закрывается без ошибок.

Куда мне копать?
  • Вопрос задан
  • 27 просмотров
Решения вопроса 1
Rimush
@Rimush Автор вопроса
def set_event(self, event):
        self.event = event
        if self.event is not None:
            self.entity.textChanged.connect(lambda: self.event(self.entity.text()))


Не понимаю как это работает, но мне помогла lambda
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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