本文整理汇总了Python中PyQt5.QtWidgets.QWidget.eventFilter方法的典型用法代码示例。如果您正苦于以下问题:Python QWidget.eventFilter方法的具体用法?Python QWidget.eventFilter怎么用?Python QWidget.eventFilter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt5.QtWidgets.QWidget
的用法示例。
在下文中一共展示了QWidget.eventFilter方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: eventFilter
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import eventFilter [as 别名]
def eventFilter(self, obj, ev):
if ev.type() == QEvent.KeyPress:
if ev.key() == Qt.Key_Return:
text = self.execution.toPlainText().split('\n')
self.execute(text[-1])
return self.execution.event(ev)
QWidget.eventFilter(self, obj, ev)
return False
示例2: eventFilter
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import eventFilter [as 别名]
def eventFilter(self, object, event):
if object == self.btnSplit and event.type() == event.HoverEnter:
# self.setAutoFillBackground(True)
# self.setBackgroundRole(QPalette.Highlight)
# self.splitter.setAutoFillBackground(True)
# self.splitter.setStyleSheet("""QSplitter#{}{{
# border:1px solid darkblue;
# }}""".format(self.splitter.objectName()))
self.setStyleSheet(style.mainEditorTabSS() + """
QSplitter#{name},
QSplitter#{name} > QWidget > QSplitter{{
border:3px solid {color};
}}""".format(
name=self.splitter.objectName(),
color=style.highlight))
elif object == self.btnSplit and event.type() == event.HoverLeave:
# self.setAutoFillBackground(False)
# self.setBackgroundRole(QPalette.Window)
# self.splitter.setStyleSheet("""QSplitter#{}{{
# border: 1px solid transparent;
# }}""".format(self.splitter.objectName()))
self.setStyleSheet(style.mainEditorTabSS())
return QWidget.eventFilter(self, object, event)
示例3: eventFilter
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import eventFilter [as 别名]
def eventFilter(self, obj, evt):
"""
Public method to handle some events for the tabbar.
@param obj reference to the object (QObject)
@param evt reference to the event object (QEvent)
@return flag indicating, if the event was handled (boolean)
"""
if obj == self.__tabBar:
if evt.type() == QEvent.MouseButtonPress:
pos = evt.pos()
for i in range(self.__tabBar.count()):
if self.__tabBar.tabRect(i).contains(pos):
break
if i == self.__tabBar.currentIndex():
if self.isMinimized():
self.expand()
else:
self.shrink()
return True
elif self.isMinimized():
self.expand()
elif evt.type() == QEvent.Wheel:
if qVersion() >= "5.0.0":
delta = evt.angleDelta().y()
else:
delta = evt.delta()
if delta > 0:
self.prevTab()
else:
self.nextTab()
return True
return QWidget.eventFilter(self, obj, evt)
示例4: eventFilter
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import eventFilter [as 别名]
def eventFilter(self, obj, event):
if obj == self.editor and event.type() == QEvent.Enter:
for w in [self.scrollBar, self.topPanel,
self.bottomPanel, self.leftPanel]:
# w.setVisible(False)
self.hideWidget(w)
return QWidget.eventFilter(self, obj, event)
示例5: eventFilter
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import eventFilter [as 别名]
def eventFilter(self, source, event):
if (source in self.cardLabels and event.type() == QtCore.QEvent.Resize):
if source.card.golden:
source.card_data.setScaledSize(source.size())
else:
source.setPixmap(source.card_data.scaled(source.size(),
QtCore.Qt.KeepAspectRatio,
QtCore.Qt.SmoothTransformation))
return QWidget.eventFilter(self, source, event)
示例6: eventFilter
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import eventFilter [as 别名]
def eventFilter(self, obj, event):
# http://stackoverflow.com/questions/13788452/
# pyqt-how-to-handle-event-without-inheritance
# https://srinikom.github.io/pyside-docs/PySide/QtCore/QObject.
# html#PySide.QtCore.PySide.QtCore.QObject.installEventFilter
if event.type() == QEvent.FontChange:
return True # Eat the event to disable zooming
else:
return QWidget.eventFilter(self, obj, event)
示例7: eventFilter
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import eventFilter [as 别名]
def eventFilter(self, object, event):
if event.type() == QEvent.Close:
if isinstance(object, MainWindow):
window = object
for checkBox, w in self.mainWindowForCheckBoxMap.items():
if w is window:
break
else:
checkBox = None
if checkBox:
checkBox.setChecked(False)
return QWidget.eventFilter(self, object, event)
示例8: eventFilter
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import eventFilter [as 别名]
def eventFilter(self, obj, event):
"""An event filter that looks for focus in events, closing any floating
docks when found."""
# Note: We can't ``def focusInEvent(self, focusEvent)`` since qutepart
# is the focus proxy, meaning this won't be called. Hence, the neeed for
# an event listener.
if (event.type() == QEvent.FocusIn and
(obj == self or obj == self.focusProxy()) ):
for dock in core.mainWindow().findChildren(DockWidget):
# Close all unpinned docks. The exception: if the Open Files
# dock is waiting for the Ctrl button to be released, keep it
# open; it will be be closed when Ctrl is released.
if not dock.isPinned() and (not getattr(dock, '_waitForCtrlRelease', False)):
dock._close()
return QWidget.eventFilter(self, obj, event)
示例9: eventFilter
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import eventFilter [as 别名]
def eventFilter(self, watched, event):
"""
Public method called to filter the event queue.
@param watched the QObject being watched (QObject)
@param event the event that occurred (QEvent)
@return flag indicating whether the event was handled (boolean)
"""
if self.__browser and watched == self.__browser.viewport() and \
event.type() == QEvent.MouseButtonRelease:
link = self.__result.linkAt(event.pos())
if not link.isEmpty() and link.isValid():
ctrl = event.modifiers() & Qt.ControlModifier
if (event.button() == Qt.LeftButton and ctrl) or \
event.button() == Qt.MidButton:
self.__mw.newTab(link)
return QWidget.eventFilter(self, watched, event)
示例10: eventFilter
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import eventFilter [as 别名]
def eventFilter(self, watched, event):
"""
Public method called to filter the event queue.
@param watched the QObject being watched (QObject)
@param event the event that occurred (QEvent)
@return flag indicating whether the event was handled (boolean)
"""
if self.__tocWidget and watched == self.__tocWidget.viewport() and \
event.type() == QEvent.MouseButtonRelease:
if self.__tocWidget.indexAt(event.pos()).isValid() and \
event.button() == Qt.LeftButton:
self.itemClicked(self.__tocWidget.currentIndex())
elif self.__tocWidget.indexAt(event.pos()).isValid() and \
event.button() == Qt.MidButton:
model = self.__tocWidget.model()
itm = model.contentItemAt(self.__tocWidget.currentIndex())
self.__mw.newTab(itm.url())
return QWidget.eventFilter(self, watched, event)
示例11: eventFilter
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import eventFilter [as 别名]
def eventFilter(self, obj, event):
pass # suppress docsting for non-public method
"""QWidget.eventFilter implementation. Catches _edit key pressings. Processes some of them
"""
if event.type() == QEvent.KeyPress:
if event.matches(QKeySequence.MoveToNextLine):
if self._edit.cursorPosition[0] == (len(self._edit.lines) - 1):
self._onHistoryNext()
return True
elif event.matches(QKeySequence.MoveToPreviousLine):
if self._edit.cursorPosition[0] == 0:
self._onHistoryPrev()
return True
elif event.matches(QKeySequence.MoveToNextPage) or \
event.matches(QKeySequence.MoveToPreviousPage):
self._browser.keyPressEvent(event)
return True
elif event.matches(QKeySequence.InsertParagraphSeparator):
return self._editNewLineEvent()
return QWidget.eventFilter(self, obj, event)
示例12: eventFilter
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import eventFilter [as 别名]
def eventFilter(self, source, event):
if event.type() == QtCore.QEvent.MouseMove:
newClickPosition = source.mapTo(self.mdi, event.pos())
for s in self.mdi.subWindowList():
if source == s.widget() and self.moving:
newWidgetX = self.prevWidgetPosition.x() + newClickPosition.x() - self.downPosition.x()
newWidgetY = self.prevWidgetPosition.y() + newClickPosition.y() - self.downPosition.y()
s.move(newWidgetX, newWidgetY)
elif event.type() == QtCore.QEvent.MouseButtonPress:
if (source.cursor().shape() == QtCore.Qt.SizeVerCursor or source.cursor().shape() == QtCore.Qt.SizeHorCursor):
# resizing hack: resizing works as some mdi feature, just don't set moving parameters here.
pass
else:
self.downPosition = source.mapTo(self.mdi, event.pos())
self.prevWidgetPosition = source.mapTo(self.mdi, source.pos())
self.moving = True
elif event.type() == QtCore.QEvent.MouseButtonRelease:
self.moving = False
return QWidget.eventFilter(self, source, event)
示例13: eventFilter
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import eventFilter [as 别名]
def eventFilter(self, watched, event):
"""
Public method called to filter the event queue.
@param watched the QObject being watched (QObject)
@param event the event that occurred (QEvent)
@return flag indicating whether the event was handled (boolean)
"""
if self.__searchEdit and watched == self.__searchEdit and \
event.type() == QEvent.KeyPress:
idx = self.__index.currentIndex()
if event.key() == Qt.Key_Up:
idx = self.__index.model().index(
idx.row() - 1, idx.column(), idx.parent())
if idx.isValid():
self.__index.setCurrentIndex(idx)
elif event.key() == Qt.Key_Down:
idx = self.__index.model().index(
idx.row() + 1, idx.column(), idx.parent())
if idx.isValid():
self.__index.setCurrentIndex(idx)
elif event.key() == Qt.Key_Escape:
self.escapePressed.emit()
elif self.__index and watched == self.__index and \
event.type() == QEvent.ContextMenu:
idx = self.__index.indexAt(event.pos())
if idx.isValid():
menu = QMenu()
curTab = menu.addAction(self.tr("Open Link"))
newTab = menu.addAction(self.tr("Open Link in New Tab"))
menu.move(self.__index.mapToGlobal(event.pos()))
act = menu.exec_()
if act == curTab:
self.__activated(idx)
elif act == newTab:
model = self.__index.model()
if model is not None:
keyword = model.data(idx, Qt.DisplayRole)
links = model.linksForKeyword(keyword)
if len(links) == 1:
self.__mw.newTab(list(links.values())[0])
elif len(links) > 1:
from .HelpTopicDialog import HelpTopicDialog
dlg = HelpTopicDialog(self, keyword, links)
if dlg.exec_() == QDialog.Accepted:
self.__mw.newTab(dlg.link())
elif self.__index and watched == self.__index.viewport() and \
event.type() == QEvent.MouseButtonRelease:
idx = self.__index.indexAt(event.pos())
if idx.isValid() and event.button() == Qt.MidButton:
model = self.__index.model()
if model is not None:
keyword = model.data(idx, Qt.DisplayRole)
links = model.linksForKeyword(keyword)
if len(links) == 1:
self.__mw.newTab(list(links.values())[0])
elif len(links) > 1:
from .HelpTopicDialog import HelpTopicDialog
dlg = HelpTopicDialog(self, keyword, links)
if dlg.exec_() == QDialog.Accepted:
self.__mw.newTab(dlg.link())
return QWidget.eventFilter(self, watched, event)
示例14: eventFilter
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import eventFilter [as 别名]
def eventFilter(self, widget, event):
"""A filter to control the zooming and panning of the figure canvas."""
# http://stackoverflow.com/questions/17525608/
# event-filter-cannot-intercept-wheel-event-from-qscrollarea
# http://stackoverflow.com/questions/20420072/
# pyside-keypressevent-catching-enter-or-return
# http://stackoverflow.com/questions/19113532/
# qgraphicsview-zooming-in-and-out-under-mouse-position
# -using-mouse-wheel
# ZOOM ----------------------------------------------------------------
if event.type() == QEvent.Wheel:
# http://stackoverflow.com/questions/8772595/
# how-to-check-if-a-key-modifier-is-pressed-shift-ctrl-alt
modifiers = QApplication.keyboardModifiers()
if modifiers == Qt.ControlModifier:
if event.angleDelta().y() > 0:
self.zoomIn()
else:
self.zoomOut()
return True
else:
return False
# PAN -----------------------------------------------------------------
# Set ClosedHandCursor:
elif event.type() == QEvent.MouseButtonPress:
if event.button() == Qt.LeftButton:
QApplication.setOverrideCursor(Qt.ClosedHandCursor)
self.pan = True
self.xclick = event.globalX()
self.yclick = event.globalY()
# Reset Cursor:
elif event.type() == QEvent.MouseButtonRelease:
QApplication.restoreOverrideCursor()
self.pan = False
# Move ScrollBar:
elif event.type() == QEvent.MouseMove:
if self.pan is True:
dx = self.xclick - event.globalX()
self.xclick = event.globalX()
dy = self.yclick - event.globalY()
self.yclick = event.globalY()
scrollBarH = self.horizontalScrollBar()
scrollBarH.setValue(scrollBarH.value() + dx)
scrollBarV = self.verticalScrollBar()
scrollBarV.setValue(scrollBarV.value() + dy)
return QWidget.eventFilter(self, widget, event)
示例15: eventFilter
# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import eventFilter [as 别名]
def eventFilter(self, source, event):
if event.type() == QEvent.KeyRelease and self.isVisible() and not self.window().top_search_bar.hasFocus() and\
event.key() == Qt.Key_Space:
self.on_play_pause_button_click()
return QWidget.eventFilter(self, source, event)