pymodaq 3.6.13__py3-none-any.whl → 4.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pymodaq might be problematic. Click here for more details.
- pymodaq/__init__.py +13 -6
- pymodaq/control_modules/__init__.py +0 -7
- pymodaq/control_modules/daq_move.py +965 -2
- pymodaq/control_modules/daq_move_ui.py +319 -0
- pymodaq/control_modules/daq_viewer.py +1573 -3
- pymodaq/control_modules/daq_viewer_ui.py +393 -0
- pymodaq/control_modules/mocks.py +51 -0
- pymodaq/control_modules/move_utility_classes.py +709 -8
- pymodaq/control_modules/utils.py +256 -0
- pymodaq/control_modules/viewer_utility_classes.py +663 -6
- pymodaq/daq_utils.py +89 -0
- pymodaq/dashboard.py +91 -72
- pymodaq/examples/custom_app.py +12 -11
- pymodaq/examples/custom_viewer.py +10 -10
- pymodaq/examples/function_plotter.py +16 -13
- pymodaq/examples/nonlinearscanner.py +8 -6
- pymodaq/examples/parameter_ex.py +7 -7
- pymodaq/examples/preset_MockCamera.xml +1 -0
- pymodaq/extensions/__init__.py +16 -0
- pymodaq/extensions/console.py +76 -0
- pymodaq/{daq_logger.py → extensions/daq_logger.py} +115 -65
- pymodaq/extensions/daq_scan.py +1339 -0
- pymodaq/extensions/daq_scan_ui.py +240 -0
- pymodaq/extensions/h5browser.py +23 -0
- pymodaq/{pid → extensions/pid}/__init__.py +4 -2
- pymodaq/{pid → extensions/pid}/daq_move_PID.py +2 -2
- pymodaq/{pid → extensions/pid}/pid_controller.py +48 -36
- pymodaq/{pid → extensions/pid}/utils.py +52 -6
- pymodaq/extensions/utils.py +40 -0
- pymodaq/post_treatment/__init__.py +6 -0
- pymodaq/{daq_analysis → post_treatment/daq_analysis}/daq_analysis_main.py +17 -17
- pymodaq/{daq_measurement → post_treatment/daq_measurement}/daq_measurement_main.py +8 -14
- pymodaq/post_treatment/load_and_plot.py +219 -0
- pymodaq/post_treatment/process_to_scalar.py +263 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/run_all.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/stop_all.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/QtDesigner_ressources.bat +1 -1
- pymodaq/resources/QtDesigner_Ressources/QtDesigner_ressources.qrc +1 -0
- pymodaq/resources/QtDesigner_Ressources/QtDesigner_ressources_rc.py +109784 -109173
- pymodaq/resources/QtDesigner_Ressources/icons.svg +142 -0
- pymodaq/resources/VERSION +1 -1
- pymodaq/resources/config_template.toml +32 -13
- pymodaq/resources/preset_default.xml +1 -1
- pymodaq/{daq_utils → utils}/Tuto innosetup/script_full_setup.iss +1 -1
- pymodaq/utils/__init__.py +0 -29
- pymodaq/utils/abstract/__init__.py +48 -0
- pymodaq/{daq_utils → utils}/abstract/logger.py +7 -3
- pymodaq/utils/array_manipulation.py +379 -8
- pymodaq/{daq_utils → utils}/calibration_camera.py +6 -6
- pymodaq/{daq_utils → utils}/chrono_timer.py +1 -1
- pymodaq/utils/config.py +448 -0
- pymodaq/utils/conftests.py +5 -0
- pymodaq/utils/daq_utils.py +828 -8
- pymodaq/utils/data.py +1873 -7
- pymodaq/{daq_utils → utils}/db/db_logger/db_logger.py +86 -47
- pymodaq/{daq_utils → utils}/db/db_logger/db_logger_models.py +31 -10
- pymodaq/{daq_utils → utils}/enums.py +12 -7
- pymodaq/utils/exceptions.py +37 -0
- pymodaq/utils/factory.py +82 -0
- pymodaq/{daq_utils → utils}/gui_utils/__init__.py +1 -1
- pymodaq/utils/gui_utils/custom_app.py +129 -0
- pymodaq/utils/gui_utils/file_io.py +66 -0
- pymodaq/{daq_utils → utils}/gui_utils/layout.py +2 -2
- pymodaq/{daq_utils → utils}/gui_utils/utils.py +13 -3
- pymodaq/{daq_utils → utils}/gui_utils/widgets/__init__.py +2 -2
- pymodaq/utils/gui_utils/widgets/label.py +24 -0
- pymodaq/{daq_utils → utils}/gui_utils/widgets/lcd.py +12 -7
- pymodaq/{daq_utils → utils}/gui_utils/widgets/push.py +66 -2
- pymodaq/{daq_utils → utils}/gui_utils/widgets/qled.py +6 -4
- pymodaq/utils/gui_utils/widgets/spinbox.py +24 -0
- pymodaq/{daq_utils → utils}/gui_utils/widgets/table.py +2 -2
- pymodaq/utils/h5modules/__init__.py +1 -0
- pymodaq/{daq_utils/h5backend.py → utils/h5modules/backends.py} +200 -112
- pymodaq/utils/h5modules/browsing.py +683 -0
- pymodaq/utils/h5modules/data_saving.py +839 -0
- pymodaq/utils/h5modules/h5logging.py +110 -0
- pymodaq/utils/h5modules/module_saving.py +350 -0
- pymodaq/utils/h5modules/saving.py +914 -0
- pymodaq/utils/h5modules/utils.py +85 -0
- pymodaq/utils/logger.py +64 -6
- pymodaq/utils/managers/action_manager.py +460 -0
- pymodaq/{daq_utils → utils}/managers/batchscan_manager.py +144 -112
- pymodaq/{daq_utils → utils}/managers/modules_manager.py +188 -114
- pymodaq/{daq_utils → utils}/managers/overshoot_manager.py +3 -3
- pymodaq/utils/managers/parameter_manager.py +110 -0
- pymodaq/{daq_utils → utils}/managers/preset_manager.py +17 -13
- pymodaq/{daq_utils → utils}/managers/preset_manager_utils.py +8 -7
- pymodaq/{daq_utils → utils}/managers/remote_manager.py +7 -6
- pymodaq/{daq_utils → utils}/managers/roi_manager.py +148 -57
- pymodaq/utils/math_utils.py +546 -10
- pymodaq/{daq_utils → utils}/messenger.py +5 -1
- pymodaq/utils/parameter/__init__.py +2 -15
- pymodaq/{daq_utils → utils}/parameter/ioxml.py +12 -6
- pymodaq/{daq_utils → utils}/parameter/pymodaq_ptypes/__init__.py +1 -3
- pymodaq/{daq_utils → utils}/parameter/pymodaq_ptypes/filedir.py +1 -1
- pymodaq/{daq_utils → utils}/parameter/pymodaq_ptypes/itemselect.py +3 -0
- pymodaq/{daq_utils → utils}/parameter/pymodaq_ptypes/led.py +1 -1
- pymodaq/utils/parameter/pymodaq_ptypes/pixmap.py +161 -0
- pymodaq/{daq_utils → utils}/parameter/pymodaq_ptypes/slide.py +1 -1
- pymodaq/{daq_utils → utils}/parameter/pymodaq_ptypes/table.py +1 -1
- pymodaq/utils/parameter/utils.py +206 -11
- pymodaq/utils/plotting/data_viewers/__init__.py +6 -0
- pymodaq/utils/plotting/data_viewers/viewer.py +393 -0
- pymodaq/utils/plotting/data_viewers/viewer0D.py +251 -0
- pymodaq/utils/plotting/data_viewers/viewer1D.py +574 -0
- pymodaq/{daq_utils → utils}/plotting/data_viewers/viewer1Dbasic.py +8 -3
- pymodaq/{daq_utils → utils}/plotting/data_viewers/viewer2D.py +292 -357
- pymodaq/{daq_utils → utils}/plotting/data_viewers/viewer2D_basic.py +58 -75
- pymodaq/utils/plotting/data_viewers/viewerND.py +738 -0
- pymodaq/{daq_utils → utils}/plotting/gant_chart.py +2 -2
- pymodaq/{daq_utils → utils}/plotting/items/axis_scaled.py +4 -2
- pymodaq/{daq_utils → utils}/plotting/items/image.py +8 -6
- pymodaq/utils/plotting/navigator.py +355 -0
- pymodaq/utils/plotting/scan_selector.py +480 -0
- pymodaq/utils/plotting/utils/axes_viewer.py +88 -0
- pymodaq/utils/plotting/utils/filter.py +538 -0
- pymodaq/utils/plotting/utils/lineout.py +224 -0
- pymodaq/{daq_utils → utils}/plotting/utils/plot_utils.py +196 -84
- pymodaq/{daq_utils → utils}/plotting/utils/signalND.py +21 -13
- pymodaq/utils/plotting/widgets.py +76 -0
- pymodaq/utils/scanner/__init__.py +10 -0
- pymodaq/utils/scanner/scan_factory.py +204 -0
- pymodaq/utils/scanner/scanner.py +271 -0
- pymodaq/utils/scanner/scanners/_1d_scanners.py +117 -0
- pymodaq/utils/scanner/scanners/_2d_scanners.py +293 -0
- pymodaq/utils/scanner/scanners/sequential.py +192 -0
- pymodaq/utils/scanner/scanners/tabular.py +294 -0
- pymodaq/utils/scanner/utils.py +83 -0
- pymodaq/utils/slicing.py +47 -0
- pymodaq/utils/svg/__init__.py +6 -0
- pymodaq/utils/svg/svg_renderer.py +20 -0
- pymodaq/utils/svg/svg_view.py +35 -0
- pymodaq/utils/svg/svg_viewer2D.py +51 -0
- pymodaq/{daq_utils → utils}/tcp_server_client.py +36 -37
- pymodaq/{daq_utils → utils}/tree_layout/tree_layout_main.py +50 -35
- pymodaq/utils/units.py +216 -0
- pymodaq-4.0.1.dist-info/METADATA +159 -0
- {pymodaq-3.6.13.dist-info → pymodaq-4.0.1.dist-info}/RECORD +167 -170
- {pymodaq-3.6.13.dist-info → pymodaq-4.0.1.dist-info}/WHEEL +1 -2
- pymodaq-4.0.1.dist-info/entry_points.txt +8 -0
- pymodaq/daq_move/daq_move_gui.py +0 -279
- pymodaq/daq_move/daq_move_gui.ui +0 -534
- pymodaq/daq_move/daq_move_main.py +0 -1042
- pymodaq/daq_move/process_from_QtDesigner_DAQ_Move_GUI.bat +0 -2
- pymodaq/daq_move/utility_classes.py +0 -686
- pymodaq/daq_scan.py +0 -2160
- pymodaq/daq_utils/array_manipulation.py +0 -386
- pymodaq/daq_utils/config.py +0 -273
- pymodaq/daq_utils/conftests.py +0 -7
- pymodaq/daq_utils/custom_parameter_tree.py +0 -9
- pymodaq/daq_utils/daq_enums.py +0 -133
- pymodaq/daq_utils/daq_utils.py +0 -1402
- pymodaq/daq_utils/exceptions.py +0 -71
- pymodaq/daq_utils/gui_utils/custom_app.py +0 -103
- pymodaq/daq_utils/gui_utils/file_io.py +0 -75
- pymodaq/daq_utils/gui_utils/widgets/spinbox.py +0 -9
- pymodaq/daq_utils/h5exporter_hyperspy.py +0 -115
- pymodaq/daq_utils/h5exporters.py +0 -242
- pymodaq/daq_utils/h5modules.py +0 -1559
- pymodaq/daq_utils/h5utils.py +0 -241
- pymodaq/daq_utils/managers/action_manager.py +0 -236
- pymodaq/daq_utils/managers/parameter_manager.py +0 -57
- pymodaq/daq_utils/math_utils.py +0 -705
- pymodaq/daq_utils/parameter/__init__.py +0 -1
- pymodaq/daq_utils/parameter/oldpymodaq_ptypes.py +0 -1626
- pymodaq/daq_utils/parameter/pymodaq_ptypes/pixmap.py +0 -85
- pymodaq/daq_utils/parameter/utils.py +0 -136
- pymodaq/daq_utils/plotting/data_viewers/__init__.py +0 -0
- pymodaq/daq_utils/plotting/data_viewers/process_from_QtDesigner_0DViewer_GUI.bat +0 -2
- pymodaq/daq_utils/plotting/data_viewers/viewer0D.py +0 -204
- pymodaq/daq_utils/plotting/data_viewers/viewer0D_GUI.py +0 -89
- pymodaq/daq_utils/plotting/data_viewers/viewer0D_GUI.ui +0 -131
- pymodaq/daq_utils/plotting/data_viewers/viewer1D.py +0 -781
- pymodaq/daq_utils/plotting/data_viewers/viewerND.py +0 -894
- pymodaq/daq_utils/plotting/data_viewers/viewerbase.py +0 -64
- pymodaq/daq_utils/plotting/items/__init__.py +0 -0
- pymodaq/daq_utils/plotting/navigator.py +0 -500
- pymodaq/daq_utils/plotting/scan_selector.py +0 -289
- pymodaq/daq_utils/plotting/utils/__init__.py +0 -0
- pymodaq/daq_utils/plotting/utils/filter.py +0 -236
- pymodaq/daq_utils/plotting/viewer0D/__init__.py +0 -0
- pymodaq/daq_utils/plotting/viewer0D/viewer0D_main.py +0 -4
- pymodaq/daq_utils/plotting/viewer1D/__init__.py +0 -0
- pymodaq/daq_utils/plotting/viewer1D/viewer1D_main.py +0 -4
- pymodaq/daq_utils/plotting/viewer1D/viewer1Dbasic.py +0 -4
- pymodaq/daq_utils/plotting/viewer2D/viewer_2D_basic.py +0 -4
- pymodaq/daq_utils/plotting/viewer2D/viewer_2D_main.py +0 -4
- pymodaq/daq_utils/plotting/viewerND/__init__.py +0 -0
- pymodaq/daq_utils/plotting/viewerND/viewerND_main.py +0 -4
- pymodaq/daq_utils/scanner.py +0 -1289
- pymodaq/daq_utils/tree_layout/__init__.py +0 -0
- pymodaq/daq_viewer/__init__.py +0 -0
- pymodaq/daq_viewer/daq_gui_settings.py +0 -237
- pymodaq/daq_viewer/daq_gui_settings.ui +0 -441
- pymodaq/daq_viewer/daq_viewer_main.py +0 -2225
- pymodaq/daq_viewer/process_from_QtDesigner_DAQ_GUI_settings.bat +0 -2
- pymodaq/daq_viewer/utility_classes.py +0 -673
- pymodaq/examples/logger_image/__init__.py +0 -0
- pymodaq/examples/logger_image/logger_displayer.py +0 -121
- pymodaq/examples/logger_image/setup.svg +0 -3119
- pymodaq/examples/logger_image/setup_svg.py +0 -114
- pymodaq/h5browser.py +0 -39
- pymodaq/utils/scanner.py +0 -15
- pymodaq-3.6.13.dist-info/METADATA +0 -39
- pymodaq-3.6.13.dist-info/entry_points.txt +0 -8
- pymodaq-3.6.13.dist-info/top_level.txt +0 -1
- /pymodaq/{daq_analysis → post_treatment/daq_analysis}/__init__.py +0 -0
- /pymodaq/{daq_measurement → post_treatment/daq_measurement}/__init__.py +0 -0
- /pymodaq/{daq_measurement → post_treatment/daq_measurement}/daq_measurement_GUI.py +0 -0
- /pymodaq/{daq_measurement → post_treatment/daq_measurement}/daq_measurement_GUI.ui +0 -0
- /pymodaq/{daq_measurement → post_treatment/daq_measurement}/process_from_QtDesigner_DAQ_Measurement_GUI.bat +0 -0
- /pymodaq/{daq_utils → utils}/Tuto innosetup/Tuto innosetup.odt +0 -0
- /pymodaq/{daq_utils → utils}/Tuto innosetup/Tuto innosetup.pdf +0 -0
- /pymodaq/{daq_move → utils/db}/__init__.py +0 -0
- /pymodaq/{daq_utils → utils/db/db_logger}/__init__.py +0 -0
- /pymodaq/{daq_utils → utils}/gui_utils/dock.py +0 -0
- /pymodaq/{daq_utils → utils}/gui_utils/list_picker.py +0 -0
- /pymodaq/{daq_utils/abstract → utils/managers}/__init__.py +0 -0
- /pymodaq/{daq_utils → utils}/parameter/pymodaq_ptypes/bool.py +0 -0
- /pymodaq/{daq_utils → utils}/parameter/pymodaq_ptypes/date.py +0 -0
- /pymodaq/{daq_utils → utils}/parameter/pymodaq_ptypes/list.py +0 -0
- /pymodaq/{daq_utils → utils}/parameter/pymodaq_ptypes/numeric.py +0 -0
- /pymodaq/{daq_utils → utils}/parameter/pymodaq_ptypes/tableview.py +0 -0
- /pymodaq/{daq_utils → utils}/parameter/pymodaq_ptypes/text.py +0 -0
- /pymodaq/{daq_utils/db → utils/plotting}/__init__.py +0 -0
- /pymodaq/{daq_utils → utils}/plotting/image_viewer.py +0 -0
- /pymodaq/{daq_utils/db/db_logger → utils/plotting/items}/__init__.py +0 -0
- /pymodaq/{daq_utils → utils}/plotting/items/crosshair.py +0 -0
- /pymodaq/{daq_utils/managers → utils/plotting/utils}/__init__.py +0 -0
- /pymodaq/{daq_utils → utils}/qvariant.py +0 -0
- /pymodaq/{daq_utils/plotting/viewer2D → utils/scanner/scanners}/__init__.py +0 -0
- /pymodaq/{daq_utils/plotting → utils/tree_layout}/__init__.py +0 -0
- {pymodaq-3.6.13.dist-info → pymodaq-4.0.1.dist-info/licenses}/LICENSE +0 -0
|
@@ -1,24 +1,35 @@
|
|
|
1
|
-
from
|
|
2
|
-
|
|
1
|
+
from typing import Union
|
|
2
|
+
|
|
3
|
+
from qtpy import QtCore, QtWidgets
|
|
4
|
+
from qtpy.QtCore import QObject, Slot, Signal
|
|
3
5
|
import sys
|
|
4
|
-
from pymodaq.daq_utils.plotting.items.axis_scaled import AXIS_POSITIONS, AxisItem_Scaled
|
|
5
6
|
import pyqtgraph as pg
|
|
6
7
|
import numpy as np
|
|
7
8
|
from easydict import EasyDict as edict
|
|
8
9
|
|
|
10
|
+
from pymodaq.utils.plotting.widgets import ImageWidget
|
|
11
|
+
from pymodaq.utils.plotting.data_viewers.viewer import ViewerBase
|
|
12
|
+
from pymodaq.utils.data import DataRaw
|
|
13
|
+
from pymodaq.utils.plotting.items.image import UniformImageItem, SpreadImageItem
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class Viewer2DBasic(ViewerBase):
|
|
17
|
+
"""Very Basic 2D Viewer used as a view to add Image Items into it and use the image object directly
|
|
9
18
|
|
|
10
|
-
|
|
11
|
-
|
|
19
|
+
Not meant to plot directly data, see Viewer2D for that
|
|
20
|
+
|
|
21
|
+
See Also
|
|
22
|
+
--------
|
|
23
|
+
Navigator, UniformImageItem, SpreadImageItem
|
|
24
|
+
|
|
25
|
+
"""
|
|
12
26
|
|
|
13
27
|
def __init__(self, parent=None, **kwargs):
|
|
14
|
-
super().__init__()
|
|
15
|
-
|
|
16
|
-
if parent is None:
|
|
17
|
-
parent = QtWidgets.QWidget()
|
|
18
|
-
self.parent = parent
|
|
28
|
+
super().__init__(parent, **kwargs)
|
|
29
|
+
|
|
19
30
|
self.scaling_options = edict(scaled_xaxis=edict(label="", units=None, offset=0, scaling=1),
|
|
20
31
|
scaled_yaxis=edict(label="", units=None, offset=0, scaling=1))
|
|
21
|
-
self.
|
|
32
|
+
self.setup_ui()
|
|
22
33
|
|
|
23
34
|
def scale_axis(self, xaxis, yaxis):
|
|
24
35
|
return xaxis * self.scaling_options.scaled_xaxis.scaling + self.scaling_options.scaled_xaxis.offset, yaxis * self.scaling_options.scaled_yaxis.scaling + self.scaling_options.scaled_yaxis.offset
|
|
@@ -27,7 +38,7 @@ class Viewer2DBasic(QObject):
|
|
|
27
38
|
def double_clicked(self, posx, posy):
|
|
28
39
|
self.sig_double_clicked.emit(posx, posy)
|
|
29
40
|
|
|
30
|
-
def
|
|
41
|
+
def setup_ui(self):
|
|
31
42
|
vlayout = QtWidgets.QVBoxLayout()
|
|
32
43
|
hsplitter = QtWidgets.QSplitter(QtCore.Qt.Horizontal)
|
|
33
44
|
|
|
@@ -77,87 +88,59 @@ class Viewer2DBasic(QObject):
|
|
|
77
88
|
histo_layout.addWidget(self.histogram_adaptive)
|
|
78
89
|
hsplitter.addWidget(self.histo_widget)
|
|
79
90
|
|
|
91
|
+
def _show_data(self, data: DataRaw):
|
|
92
|
+
"""This basic viewer is not meant to plot data directly
|
|
80
93
|
|
|
81
|
-
class ImageWidget(pg.GraphicsLayoutWidget):
|
|
82
|
-
"""this gives a layout to add imageitems.
|
|
83
|
-
"""
|
|
84
|
-
|
|
85
|
-
def __init__(self, parent=None, *args_plotitem, **kwargs_plotitem):
|
|
86
|
-
|
|
87
|
-
super().__init__(parent)
|
|
88
|
-
self.setupUI(*args_plotitem, **kwargs_plotitem)
|
|
89
|
-
|
|
90
|
-
def setAspectLocked(self, lock=True, ratio=1):
|
|
91
|
-
"""
|
|
92
|
-
Defines the aspect ratio of the view
|
|
93
|
-
Parameters
|
|
94
|
-
----------
|
|
95
|
-
lock: (bool) if True aspect ratio is set to ratio, else the aspect ratio is varying when scaling the view
|
|
96
|
-
ratio: (int) aspect ratio between horizontal and vertical axis
|
|
97
|
-
"""
|
|
98
|
-
self.plotitem.vb.setAspectLocked(lock=True, ratio=1)
|
|
99
|
-
|
|
100
|
-
def getAxis(self, position):
|
|
101
|
-
return self.plotitem.getAxis(position)
|
|
102
|
-
|
|
103
|
-
def setupUI(self, *args_plotitem, **kwargs_plotitem):
|
|
104
|
-
layout = QtWidgets.QGridLayout()
|
|
105
|
-
# set viewer area
|
|
106
|
-
self.scene_obj = self.scene()
|
|
107
|
-
self.view = View_cust()
|
|
108
|
-
self.plotitem = pg.PlotItem(viewBox=self.view, *args_plotitem, **kwargs_plotitem)
|
|
109
|
-
self.plotItem = self.plotitem # for backcompatibility
|
|
110
|
-
self.setAspectLocked(lock=True, ratio=1)
|
|
111
|
-
self.setCentralItem(self.plotitem)
|
|
112
|
-
|
|
113
|
-
def add_scaled_axis(self, position):
|
|
114
94
|
"""
|
|
115
|
-
|
|
116
|
-
Parameters
|
|
117
|
-
----------
|
|
118
|
-
position: (str) either 'top', 'bottom', 'right' or 'left'
|
|
95
|
+
...
|
|
119
96
|
|
|
120
|
-
|
|
121
|
-
|
|
97
|
+
def set_aspect_ratio(self, status=True):
|
|
98
|
+
self.image_widget.plotitem.vb.setAspectLocked(lock=status, ratio=1)
|
|
122
99
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
axis = AxisItem_Scaled(position)
|
|
127
|
-
self.plotitem.setAxisItems({position: axis})
|
|
128
|
-
return axis
|
|
100
|
+
@property
|
|
101
|
+
def plotitem(self):
|
|
102
|
+
return self.image_widget.plotitem
|
|
129
103
|
|
|
130
|
-
|
|
131
|
-
|
|
104
|
+
@property
|
|
105
|
+
def histograms(self):
|
|
106
|
+
return [self.histogram_red, self.histogram_green, self.histogram_blue]
|
|
132
107
|
|
|
133
|
-
|
|
134
|
-
|
|
108
|
+
def add_image_item(self, image: Union[SpreadImageItem, UniformImageItem], histogram: pg.HistogramLUTWidget = None):
|
|
109
|
+
"""Adds an image item to this viewer plotitem
|
|
135
110
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
def mouseClickEvent(self, ev):
|
|
142
|
-
if ev.button() == QtCore.Qt.RightButton and self.menuEnabled():
|
|
143
|
-
ev.accept()
|
|
144
|
-
self.raiseContextMenu(ev)
|
|
145
|
-
if ev.double():
|
|
146
|
-
pos = self.mapToView(ev.pos())
|
|
147
|
-
self.sig_double_clicked.emit(pos.x(), pos.y())
|
|
111
|
+
Links it to an existing histogram
|
|
112
|
+
"""
|
|
113
|
+
self.plotitem.addItem(image)
|
|
114
|
+
if histogram in self.histograms:
|
|
115
|
+
histogram.item.setImageItem(image)
|
|
148
116
|
|
|
149
117
|
|
|
150
118
|
if __name__ == '__main__': # pragma: no cover
|
|
151
|
-
from pymodaq.
|
|
119
|
+
from pymodaq.utils.plotting.items.image import SpreadImageItem
|
|
120
|
+
from qtpy import QtSvg, QtGui
|
|
152
121
|
|
|
153
122
|
app = QtWidgets.QApplication(sys.argv)
|
|
154
123
|
form = QtWidgets.QWidget()
|
|
155
124
|
prog = Viewer2DBasic(form)
|
|
156
125
|
img = SpreadImageItem()
|
|
157
126
|
prog.image_widget.plotItem.addItem(img)
|
|
127
|
+
|
|
128
|
+
svg_item = QtSvg.QGraphicsSvgItem()
|
|
129
|
+
svg_renderer = QtSvg.QSvgRenderer(
|
|
130
|
+
r'C:\Users\weber\Labo\Projet-Dossier candidature\Technical project\GDSII\wafer.svg')
|
|
131
|
+
svg_item.setSharedRenderer(svg_renderer)
|
|
132
|
+
|
|
158
133
|
form.show()
|
|
159
134
|
|
|
160
|
-
data = np.load('triangulation_data.npy')
|
|
135
|
+
data = np.load('../../../resources/triangulation_data.npy')
|
|
161
136
|
img.setImage(data)
|
|
162
137
|
|
|
138
|
+
prog.image_widget.plotitem.addItem(svg_item)
|
|
139
|
+
curr_size = svg_renderer.defaultSize()
|
|
140
|
+
real_size = svg_item.boundingRect()
|
|
141
|
+
# tr = QtGui.QTransform()
|
|
142
|
+
# tr.translate(rect.left(), rect.top())
|
|
143
|
+
# tr.scale(300/rect.width(), 300/rect.height())
|
|
144
|
+
# svg_item.setTransform(tr)
|
|
145
|
+
pass
|
|
163
146
|
sys.exit(app.exec_())
|