Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def eventFilter(self, obj, event):
if event.type() == qt.QEvent.Hide:
self.quit()
if event.type() == qt.QEvent.KeyPress:
key = event.key()
if (key in (qt.Qt.Key_Return, qt.Qt.Key_Enter) and
self.getValidationMode() in (
self.ValidationMode.ENTER,
self.ValidationMode.AUTO_ENTER)):
# Stop on return key pressed
self.quit()
return True # Stop further handling of this keys
if (key in (qt.Qt.Key_Delete, qt.Qt.Key_Backspace) or (
key == qt.Qt.Key_Z and
event.modifiers() & qt.Qt.ControlModifier)):
rois = self.getRois()
if rois: # Something to undo
self.removeRoi(rois[-1])
# Stop further handling of keys if something was undone
return True
return super(InteractiveRegionOfInterestManager, self).eventFilter(obj, event)
"""
:param files_: List of HDF5 or Spec files (pathes or
:class:`silx.io.spech5.SpecH5` or :class:`h5py.File`
instances)
"""
qt.QMainWindow.__init__(self)
self.setWindowTitle("Silx HDF5 widget example")
self.__asyncload = False
self.__treeview = silx.gui.hdf5.Hdf5TreeView(self)
"""Silx HDF5 TreeView"""
self.__text = qt.QTextEdit(self)
"""Widget displaying information"""
self.__dataViewer = DataViewerFrame(self)
vSpliter = qt.QSplitter(qt.Qt.Vertical)
vSpliter.addWidget(self.__dataViewer)
vSpliter.addWidget(self.__text)
vSpliter.setSizes([10, 0])
spliter = qt.QSplitter(self)
spliter.addWidget(self.__treeview)
spliter.addWidget(vSpliter)
spliter.setStretchFactor(1, 1)
main_panel = qt.QWidget(self)
layout = qt.QVBoxLayout()
layout.addWidget(spliter)
layout.addWidget(self.createTreeViewConfigurationPanel(self, self.__treeview))
layout.setStretchFactor(spliter, 1)
main_panel.setLayout(layout)
def _dockLocationChanged(self, area):
self._currentArea = area
widget = self.widget()
if widget is not None:
layout = widget.layout()
if isinstance(layout, qt.QBoxLayout):
if area in (qt.Qt.LeftDockWidgetArea, qt.Qt.RightDockWidgetArea):
direction = qt.QBoxLayout.TopToBottom
else:
direction = qt.QBoxLayout.LeftToRight
layout.setDirection(direction)
self.resize(widget.minimumSize())
self.adjustSize()
return None
if idx >= len(self.legendList):
raise IndexError('list index out of range')
item = self.legendList[idx]
isActive = item[1].get("active", False)
if role == qt.Qt.DisplayRole:
# Data to be rendered in the form of text
legend = str(item[0])
return legend
elif role == qt.Qt.SizeHintRole:
# size = qt.QSize(200,50)
_logger.warning('LegendModel -- size hint role not implemented')
return qt.QSize()
elif role == qt.Qt.TextAlignmentRole:
alignment = qt.Qt.AlignVCenter | qt.Qt.AlignLeft
return alignment
elif role == qt.Qt.BackgroundRole:
# Background color, must be QBrush
if isActive:
brush = self._palette.brush(qt.QPalette.Normal, qt.QPalette.Highlight)
elif idx % 2:
brush = qt.QBrush(qt.QColor(240, 240, 240))
else:
brush = qt.QBrush(qt.Qt.white)
return brush
elif role == qt.Qt.ForegroundRole:
# ForegroundRole color, must be QBrush
if isActive:
brush = self._palette.brush(qt.QPalette.Normal, qt.QPalette.HighlightedText)
else:
brush = self._palette.brush(qt.QPalette.Normal, qt.QPalette.WindowText)
"""Add a dock widget as a new tab if there are already dock widgets
in the plot. When the first tab is added, the area is chosen
depending on the plot geometry:
if the window is much wider than it is high, the right dock area
is used, else the bottom dock area is used.
:param dock_widget: Instance of :class:`QDockWidget` to be added.
"""
if dock_widget not in self._dockWidgets:
self._dockWidgets.append(dock_widget)
if len(self._dockWidgets) == 1:
# The first created dock widget must be added to a Widget area
width = self.centralWidget().width()
height = self.centralWidget().height()
if width > (1.25 * height):
area = qt.Qt.RightDockWidgetArea
else:
area = qt.Qt.BottomDockWidgetArea
self.addDockWidget(area, dock_widget)
else:
# Other dock widgets are added as tabs to the same widget area
self.tabifyDockWidget(self._dockWidgets[0],
dock_widget)
def main():
global app
app = qt.QApplication([])
# Create the ad hoc window containing a PlotWidget and associated tools
window = PlotAreaMainWindow(app)
window.setAttribute(qt.Qt.WA_DeleteOnClose)
window.setWindowTitle("PlotArea Main Window")
window.show()
# Add two plot windows to the plot area.
window.plotArea.addPlotWindow(plotType='1D')
window.plotArea.addPlotWindow(plotType='2D')
plot0 = window.plotArea.getPlotWindow(0)
plot1 = window.plotArea.getPlotWindow(1)
# Add an 1D data + 2D image to the plots
x0 = np.linspace(-10, 10, 200)
x1 = np.linspace(-10, 5, 150)
x = np.outer(x0, x1)
image = np.sin(x) / x
plot0.addCurve(x0, np.sin(x0)/x0, legend='test curve 0')
def dataName(self, role):
if role == qt.Qt.DecorationRole:
return self.__animatedIcon.currentIcon()
if role == qt.Qt.TextAlignmentRole:
return qt.Qt.AlignTop | qt.Qt.AlignLeft
if role == qt.Qt.DisplayRole:
return self.__text
return None
def __updateFlags(self):
"""Update model flags"""
if self.__isEnabled:
self.setFlags(qt.Qt.ItemIsEnabled, 0)
self.setFlags(qt.Qt.ItemIsEnabled | qt.Qt.ItemIsEditable, 1)
else:
self.setFlags(qt.Qt.NoItemFlags)
self._updateStats(item)
return True
kind = self._plotWrapper.getKind(item)
if kind not in statsmdl.BASIC_COMPATIBLE_KINDS:
_logger.info("Item has not a supported type: %s", item)
return False
# Prepare table items
tableItems = [
qt.QTableWidgetItem(), # Legend
qt.QTableWidgetItem()] # Kind
for column in range(2, self.columnCount()):
header = self.horizontalHeaderItem(column)
name = header.data(qt.Qt.UserRole)
formatter = self._statsHandler.formatters[name]
if formatter:
tableItem = formatter.tabWidgetItemClass()
else:
tableItem = qt.QTableWidgetItem()
tooltip = self._statsHandler.stats[name].getToolTip(kind=kind)
if tooltip is not None:
tableItem.setToolTip(tooltip)
tableItems.append(tableItem)
# Disable sorting while adding table items
with self._disableSorting():
# Add a row to the table
def data(self, column, role):
if column == 1 and role == qt.Qt.DisplayRole:
return u'%g°' % super(AngleDegreeRow, self).data(column, role)
else:
return super(AngleDegreeRow, self).data(column, role)