Как можно наблюдать и реагировать на нажатие мыши в PyQt?

Как можно создать обработчик события клика, который будет работать как на задней части окна, так и на веб-странице, отображаемой в `webview` в PyQt5?
  • 18 мая 2024 г. 0:40
Ответы на вопрос 1
Для наблюдения и реагирования на нажатие мыши в PyQt можно использовать класс QWidget или его производные, такие как QFrame или QDialog. 

Пример создания обработчика события клика на задней части окна и на веб-странице в WebView:

```python
from PyQt5.QtWidgets import *
from PyQt5.QtWebEngineWidgets import *

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()

        layout = QVBoxLayout()
        self.setLayout(layout)

        # Создаем WebView для отображения веб-страницы
        self.webview = QWebEngineView()
        self.webview.load(QUrl('https://www.google.com'))
        layout.addWidget(self.webview)

        # Обработчик клика на задней части окна
        self.mousePressEvent = self.on_mouse_click

    def on_mouse_click(self, event):
        if event.button() == Qt.LeftButton:
            print('Нажатие мыши на задней части окна')

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())
```

В данном примере при нажатии левой кнопки мыши на задней части окна будет выводиться сообщение в консоль. Клики на веб-странице в WebView также будут обработаны стандартным образом.
Похожие вопросы