iT邦幫忙

2024 iThome 鐵人賽

DAY 25
0
Python

pythonGUI學習筆記系列 第 25

Day 25: PySide6 鼠標事件

  • 分享至 

  • xImage
  •  

鼠標事件

鼠標事件是指當使用者在執行操作時,例如移動鼠標或點擊等操作時,會有互動。例如拖拉元件等功能。

常用的鼠標事件

  • mousePressEvent : 鼠標按下事件,當使用者鼠標按下時觸發,常用於點擊按鈕或開始拖動物件。
  • mouseReleaseEvent : 鼠標釋放事件,當使用者鬆開鼠標時觸發。
  • mouseDoubleClickEvent : 鼠標雙擊事件,當使用者鼠標雙擊時觸發。
  • mouseMoveEvent : 鼠標移動事件,當使用者移動鼠標時發生,常用於顯示當前鼠標位置,或用於繪圖應用中的繪畫操作。
  • wheelEvent : 鼠標滾動事件,當使用者滾動時觸發, 常用於滾動清單或縮放視圖。

範例

下面是當作了不一樣的鼠標事件,會列印出當前的鼠標事件。要注意每個函數的名字要打對,PySide6 才會觸發事件。

  • event.x()event.y() 回傳的值是鼠標相對於視窗的座標
from PySide6.QtWidgets import QApplication, QWidget
from PySide6.QtGui import QMouseEvent
from PySide6.QtCore import Qt

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.resize(400, 300)

    def mousePressEvent(self, event: QMouseEvent):
        if event.button() == Qt.LeftButton:
            print("鼠標左鍵按下")
        elif event.button() == Qt.RightButton:
            print("鼠標右鍵按下")

    def mouseReleaseEvent(self, event: QMouseEvent):
        print("鼠標按鈕釋放")

    def mouseMoveEvent(self, event: QMouseEvent):
        print(f"鼠標移動到: ({event.x()}, {event.y()})")

    def mouseDoubleClickEvent(self, event: QMouseEvent):
        print("鼠標雙擊")

if __name__ == "__main__":
    app = QApplication([])
    window = MyWindow()
    window.show()
    app.exec()

上一篇
Day 24: PySide6 QPaint 和 QPen 繪圖
下一篇
Day 26 PySide6 插入網頁QWebEngineView
系列文
pythonGUI學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言