Как использовать события/сигналы «при редактировании», например. QLineEdit в pyside6 (Qt6)Python

Программы на Python
Ответить
Anonymous
 Как использовать события/сигналы «при редактировании», например. QLineEdit в pyside6 (Qt6)

Сообщение Anonymous »

Извините за этот пост, но я до сих пор не понял его после поисков в Интернете.
Я использую Python PySide6, так как мне это необходимо из-за некоторых проблем с масштабированием дисплея, которые возникают у меня с PyQt6 и другими более старыми версиями.
Я уже реализовал основы большой программы с динамической загрузкой .ui, и теперь я хочу реализовать действия по событиям для всех моих элементов графического интерфейса. Некоторые мне уже удалось использовать, перегрузив метод eventFilter объектов графического интерфейса с помощью функции installEventFilter(self). Это хорошо работает для наведения и других вещей, а используемые события всегда имеют тип QtCore.QEvent. .... Проблема в том, что мне здесь не хватает некоторых событий.
Сначала простой пример и, возможно, потенциальное решение объясняет это для всех остальных случаев в моем коде:
Как реализовать функцию для события «при изменении» объекта QLineEdit? Я просто хочу получать уведомления, когда значение элемента управления было изменено.
В Интернете я нахожу документацию для сигналов, которые следует подключать к слоту, который я могу реализовать самостоятельно.
Например:

Код: Выделить всё

self.any_line_edit.textChanged.connect(self.any_slot)
Странно то, что мой объект QLineEdit, похоже, не имеет ссылки на сигнал «textChanged». По крайней мере, PyCharm не может разрешить имя, и я вижу другие методы класса QLineEdit, поэтому тип объекта кажется правильным.
На других веб-сайтах я нахожу аналогичный пример для QPushButton:

Код: Выделить всё

self.button.clicked.connect(self.the_button_was_clicked)
Здесь та же проблема. У моего PySide6 QPushButton, похоже, нет сигнала под названием «нажат».
Тогда я подумал, нет проблем. Возможно, я просто продолжу использовать функцию перегрузки eventFilter и просто установлю и заменю eventFilter для каждого объекта и вручную отфильтрую необходимое событие.
Но кажется, что простой QLineEdit не генерирует событие, которое соответствует функции «при редактировании».
Я просто вижу такие события, как: QEvent::Paint, QEvent::DynamicPropertyChange, QEvent::WindowDeactivate, QEvent::Leave и многие другие, но ничего похожего на «при редактировании», или «окончании редактирования», или «при изменении» или что-то в этом роде.
Поэтому кажется, что я не вижу соответствующего события в функции eventFilter и по каким-то обстоятельствам я также не вижу сигналов, используемых для подключения объекта к слотам.
Я уверен, что мне не хватает чего-то очень простого, но в настоящее время я действительно не вижу в замешательстве.
Я использую Python 3.9, PySide6 и PyCharm 2022.1.
Я просто хочу получать уведомления, если значения этих элементов управления вводом изменяются. В моем коде даже есть более сложные конструкции сигнальных слотов и переопределения eventFilter, и теперь я терплю неудачу в такой простой вещи. К моему оправданию: обычно я реализую код в Qt5 с помощью C++, поэтому я новичок в вопросах Python и PySide6. хД

Подробнее здесь: https://stackoverflow.com/questions/726 ... yside6-qt6
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»