承接上一节的一些事件,本节介绍PyQt中的其他一些事件,分别是、键盘事件、焦点事件、拖拽事件、绘制事件、改变事件、右键菜单、输入法。仍然是简单了解一下相关的知识。

鼠标事件mouse

  • enterEvent(QEvent) : 鼠标进入时触发
  • leaveEvent(QEvent) :鼠标离开时触发
  • mousePressEvent(QMouseEvent) : 鼠标被按下
  • mouseReleaseEvent( QMouseEvent) : 鼠标松开
  • mouseDoubleClickEvent(QMouseEvent) : 双击
  • mouseMoveEvent(QMouseEvent) : 鼠标移动,在鼠标跟踪讲到过

这里仅作一个简单的了解:

# -*- coding: UTF-8 -*-
from PyQt5.Qt import *


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("事件消息的学习")
        self.resize(500, 500)
        self.setup_ui()

    def setup_ui(self):
        pass

    def enterEvent(self, QEvent):
        print("鼠标进来了")

    def leaveEvent(self, QEvent):
        print("鼠标出去了")

    def mousePressEvent(self, QMouseEvent):
        print("鼠标被按下")

    def mouseReleaseEvent(self, QMouseEvent):
        print("鼠标被释放")

    def mouseDoubleClickEvent(self, QMouseEvent):
        print("鼠标被双击")

    def mouseMoveEvent(self, QMouseEvent):
        print("鼠标移动了")


# 方便在模板里进行调试
if __name__ == "__main__":
    import sys

    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

键盘事件key

包括某个按键被按下或者释放:

  • keyPressEvent
  • keyReleaseEvent
# -*- coding: UTF-8 -*-
from PyQt5.Qt import *


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("事件消息的学习")
        self.resize(500, 500)
        self.setup_ui()

    def setup_ui(self):
        pass

    def keyPressEvent(self, QKeyEvent):
        print("按键被按下")

    def keyReleaseEvent(self, QKeyEvent):
        print("按键被释放")

# 方便在模板里进行调试
if __name__ == "__main__":
    import sys

    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

具体是按下哪个键则需要去判断。

焦点事件focus

  • focusInEvent(QFocusEvent):获得焦点
  • focusOutEvent(QFocusEvent) : 失去焦点

PyQt聚焦事件演示

拖拽事件drag

PyQt拖拽事件

dragEnterEvent: 当被拖动的对象移动到可以可以接受操作的widget时会触发该方法。
dragMoveEvent:当拖放操作在执行过程中触发。
dragLeaveEvent:当拖放操作离开当前widget时触发。
dropEvent:当拖放操作结束时触发。

绘制事件

paintEvent(QPaintEvent) : 显示控件,更新控件时调用

改变事件

changeEvent(QEvent) : 窗体改变,字体改变时调用

右键菜单

contextMenuEvent(QContextMenuEvent) : 访问右键菜单时调用

输入法

inputMethodEvent(QInputMethodEvent)


博主个人公众号
版权声明 ▶ 本网站名称:陶小桃Blog
▶ 本文链接:https://www.52txr.cn/2022/PyQtEvent2.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!

最后修改:2022 年 07 月 16 日
如果觉得我的文章对你有用,请随意赞赏