Название: PyQt5 обработка событий (Events), событие и его источник Отправлено: Catray от Октябрь 19, 2021, 18:55 Здравствуйте. Пишу GUI программу на Python, мне необходимо узнать в процедуре-обработчике какое событие (Нажатие, удержание, отпускание клавиши) произошло?
Код: import sys Источник события я знаю как найти - MainWindow.sender(), но как получить событие? Название: Re: PyQt5 обработка событий (Events), событие и его источник Отправлено: kambala от Октябрь 19, 2021, 23:15 тебе надо смотреть в сторону QEvent и eventFilter
Название: Re: PyQt5 обработка событий (Events), событие и его источник Отправлено: Catray от Октябрь 20, 2021, 11:29 тебе надо смотреть в сторону QEvent и eventFilter Смотрел, не понимаю как прикрутить. Название: Re: PyQt5 обработка событий (Events), событие и его источник Отправлено: kambala от Октябрь 20, 2021, 12:02 унаследуйся от QMainWindow, перенеси создание кнопки внутрь, вместо btn.clicked.connect(ButtonsOnclick) используй btn.installEventFilter(self), добавь метод eventFilter и в нем обрабатывай только нужные QEvent. см. документацию к installEventFilter и eventFilter для подробностей.
Название: Re: PyQt5 обработка событий (Events), событие и его источник Отправлено: Catray от Октябрь 22, 2021, 00:52 унаследуйся от QMainWindow, перенеси создание кнопки внутрь, вместо btn.clicked.connect(ButtonsOnclick) используй btn.installEventFilter(self), добавь метод eventFilter и в нем обрабатывай только нужные QEvent. см. документацию к installEventFilter и eventFilter для подробностей. А без парадигм ООП-наследования, невозможно? :o ??? Название: Re: PyQt5 обработка событий (Events), событие и его источник Отправлено: __Heaven__ от Октябрь 22, 2021, 09:11 Врядли
Нужно либо класс кнопки переопределять, либо класс, который будет получать события кнопки (eventFilter) Название: Re: PyQt5 обработка событий (Events), событие и его источник Отправлено: kambala от Октябрь 22, 2021, 11:41 унаследуйся от QMainWindow, перенеси создание кнопки внутрь, вместо btn.clicked.connect(ButtonsOnclick) используй btn.installEventFilter(self), добавь метод eventFilter и в нем обрабатывай только нужные QEvent. см. документацию к installEventFilter и eventFilter для подробностей. А без парадигм ООП-наследования, невозможно? :o ??? Название: Re: PyQt5 обработка событий (Events), событие и его источник Отправлено: Авварон от Октябрь 24, 2021, 15:42 ты от них все равно никуда не денешься в программах сложнее hello world лисп хихикает в сторонке Название: Re: PyQt5 обработка событий (Events), событие и его источник Отправлено: kambala от Октябрь 24, 2021, 18:16 ты от них все равно никуда не денешься в программах сложнее hello world лисп хихикает в сторонке Название: Re: PyQt5 обработка событий (Events), событие и его источник Отправлено: Catray от Октябрь 25, 2021, 11:42 Врядли Нужно либо класс кнопки переопределять, либо класс, который будет получать события кнопки (eventFilter) Поможете с реализацией второго варианта? Цитировать либо класс, который будет получать события кнопки (eventFilter) Название: Re: PyQt5 обработка событий (Events), событие и его источник Отправлено: Igors от Октябрь 25, 2021, 13:39 лисп хихикает в сторонке [off]Классный язык, в свое время года полтора писал на AutoLISP. Вначале долго "лупал глазками", напр "..присваивает выражение не вычисляя его" - это как ??? Но потом в кайф [/off]Название: Re: PyQt5 обработка событий (Events), событие и его источник Отправлено: kambala от Октябрь 25, 2021, 16:00 Поможете с реализацией второго варианта? в документации очень доступно всё описано, что читать я тебе уже написал выше |