Как использовать QSignalMapper для нескольких QLineEdits?

У меня есть около 20 QLineEdits в конкретном окне приложения.

Я хочу, чтобы содержимое QLineEdit было очищено, как только я нажму на него.

Для пары QLIneEdits я использую лямбда-функцию ниже.

    self.StudentName.mousePressEvent = lambda event : self.StudentName.clear()

Я не уверен, как реализовать QSignalMapper для этой цели, так как у меня есть около 20 QLineEdits. Может кто-нибудь, пожалуйста, кратко объясните QSignalMapper.

Придется ли мне создавать массив всех СИГНАЛОВ QLineEdit, а затем сопоставить его со СЛОТОМ QSignalMapper. Пожалуйста, предложите.

1 ответ

Насколько я вижу, QSignalMapper предназначен для решения обратной задачи или сбора и сопоставления сигналов с нескольких входов.

Самый простой способ установить несколько событий на простое поведение - сделать это на чистом py thon:

 for edit in LineEdits:
     edit.mousePressEvent = lambda event : edit.clear()

где LineEdits - ваш список виджетов.

Другие вопросы по тегам