Я использую Python PySide6, так как мне это необходимо из-за некоторых проблем с масштабированием дисплея, которые возникают у меня с PyQt6 и другими более старыми версиями.
Я уже реализовал основы большой программы с динамической загрузкой .ui, и теперь я хочу реализовать действия по событиям для всех моих элементов графического интерфейса. Некоторые мне уже удалось использовать, перегрузив метод eventFilter объектов графического интерфейса с помощью функции installEventFilter(self). Это хорошо работает для наведения и других вещей, а используемые события всегда имеют тип QtCore.QEvent. .... Проблема в том, что мне здесь не хватает некоторых событий.
Сначала простой пример и, возможно, потенциальное решение объясняет это для всех остальных случаев в моем коде:
Как реализовать функцию для события «при изменении» объекта QLineEdit? Я просто хочу получать уведомления, когда значение элемента управления было изменено.
В Интернете я нахожу документацию для сигналов, которые следует подключать к слоту, который я могу реализовать самостоятельно.
Например:
Код: Выделить всё
self.any_line_edit.textChanged.connect(self.any_slot)
На других веб-сайтах я нахожу аналогичный пример для QPushButton:
Код: Выделить всё
self.button.clicked.connect(self.the_button_was_clicked)
Тогда я подумал, нет проблем. Возможно, я просто продолжу использовать функцию перегрузки 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
Мобильная версия