Source code for data_slicer.dsviewbox
"""
Subclass of ViewBox with custom menu items.
"""
import logging
from pyqtgraph.Qt import QtGui
from pyqtgraph.graphicsItems.ViewBox import ViewBox, ViewBoxMenu
logger = logging.getLogger('ds.'+__name__)
[docs]class DSViewBoxMenu(ViewBoxMenu.ViewBoxMenu) :
""" Subclass of ViewBoxMenu with custom menu items. """
def __init__(self, *args, **kwargs) :
super().__init__(*args, **kwargs)
self._remove_unwanted_actions()
# Define own menu entries
self.mpl_export = QtGui.QAction('MPL export', self)
self.addAction(self.mpl_export)
self.transpose = QtGui.QAction('Transpose', self)
self.addAction(self.transpose)
self.toggle_cursor = QtGui.QAction('Show cursor', self, checkable=True)
self.addAction(self.toggle_cursor)
def _remove_unwanted_actions(self) :
# Remove unwanted menu entries
unwanted_texts = ['View All',
'Mouse Mode',
'Plot Options',
'Export...']
for action in self.actions() :
if action.text() in unwanted_texts :
self.removeAction(action)
[docs]class DSViewBox(ViewBox) :
"""
Subclass of ViewBox with custom menu items, as defined in
:class:`~data_slicer.dsviewbox.DSViewBoxMenu`.
"""
def __init__(self, imageplot, *args, **kwargs) :
super().__init__(*args, **kwargs)
logger.debug(imageplot)
self.imageplot = imageplot
# Connect signal handling and make the menu entry appear
self.menu = DSViewBoxMenu(self)
self.menu.mpl_export.triggered.connect(self.imageplot.mpl_export)
self.menu.transpose.triggered.connect(self.imageplot.transpose)
self.menu.toggle_cursor.triggered.connect(self.imageplot.toggle_cursor)