MCPcopy Create free account
hub / github.com/PyQt5/PyQt / eventFilter

Method eventFilter

Demo/NewFramelessWindow.py:106–132  ·  view source on GitHub ↗
(self, obj, event)

Source from the content-addressed store, hash-verified

104 Qt.LeftButton, Qt.NoButton, Qt.NoModifier))
105
106 def eventFilter(self, obj, event):
107 if obj.isWindowType():
108 # top window 处理光标样式
109 if event.type() == QEvent.MouseMove and obj.windowState(
110 ) == Qt.WindowNoState:
111 obj.setCursor(
112 self._get_cursor(
113 self._get_edges(event.pos(), obj.width(),
114 obj.height())))
115 elif event.type() == QEvent.TouchUpdate:
116 self.moveOrResize(obj, event.pos(), obj.width(), obj.height())
117 elif obj in self.Widgets and isinstance(
118 event, QMouseEvent) and event.button() == Qt.LeftButton:
119 if event.type() == QEvent.MouseButtonDblClick:
120 # 双击最大化还原
121 if self.is_titlebar(event.pos()):
122 if obj.windowState() == Qt.WindowFullScreen:
123 pass
124 elif obj.windowState() == Qt.WindowMaximized:
125 obj.showNormal()
126 else:
127 obj.showMaximized()
128 elif event.type() == QEvent.MouseButtonPress:
129 self.moveOrResize(obj.windowHandle(), event.pos(), obj.width(),
130 obj.height())
131
132 return False
133
134
135class FramelessWindow(QWidget, Ui_FormFrameless):

Callers

nothing calls this directly

Calls 9

_get_cursorMethod · 0.95
_get_edgesMethod · 0.95
moveOrResizeMethod · 0.95
is_titlebarMethod · 0.95
typeMethod · 0.80
showNormalMethod · 0.80
widthMethod · 0.45
heightMethod · 0.45
showMaximizedMethod · 0.45

Tested by

no test coverage detected