@Baizel

Можно ли узнать, какой элемент вызвал сигнал textChanged?

Есть несколько ячеек, с которыми нужно взаимодействовать одинаково. Например, ввести значение в определенном диапазоне, если ввел вне диапазона над нужной ячейкой производится какое-либо действие. Как в коде, чтобы on_text_changedE сама выбирала ячейку, а не прописывать для каждой отдельно. Есть возможность такое сделать?
self.ui.lineEditE1max.textChanged.connect(self.on_text_changedE)
self.ui.lineEditE1min.textChanged.connect(self.on_text_changedE)

def on_text_changedE(self, text):
        if text == "":
            pass
        elif text == "0":
            pass
        elif float(text.replace(',', '.')) < 0.9 or float(text.replace(',', '.')) > 1.5:
            self.ui.lineEditE1max.setModified(False)
            self.ui.pushButton.setEnabled(False)
            QtWidgets.QToolTip.showText(QtGui.QCursor.pos(),"Введите значение от 0.9 до 1.5", self.ui.lineEditE1max)
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
@bbkmzzzz
в обработчике вызывайте sender() основного класса, он возвращает объект, который испустил сигнал
def on_text_changedE(self, text):
        widget = self.sender()  # <- вот то, что испустило сигнал
        if text == "":
            pass
        elif text == "0":
            pass
        elif float(text.replace(',', '.')) < 0.9 or float(text.replace(',', '.')) > 1.5:
            self.ui.lineEditE1max.setModified(False)
            self.ui.pushButton.setEnabled(False)
            QtWidgets.QToolTip.showText(QtGui.QCursor.pos(),"Введите значение от 0.9 до 1.5", self.ui.lineEditE1max)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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