Thu, 24 May 2018 23:22:37 +0200
[plotter] flake8
66
2a97995628a3
added copyright header to every python file
David Douard <david.douard@logilab.fr>
parents:
62
diff
changeset
|
1 | # This program is free software; you can redistribute it and/or modify it under |
2a97995628a3
added copyright header to every python file
David Douard <david.douard@logilab.fr>
parents:
62
diff
changeset
|
2 | # the terms of the GNU General Public License as published by the Free Software |
2a97995628a3
added copyright header to every python file
David Douard <david.douard@logilab.fr>
parents:
62
diff
changeset
|
3 | # Foundation; either version 2 of the License, or (at your option) any later |
2a97995628a3
added copyright header to every python file
David Douard <david.douard@logilab.fr>
parents:
62
diff
changeset
|
4 | # version. |
22
b2f4646161be
Begin of a HPGL plotter application (PyQt4)
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
5 | # |
66
2a97995628a3
added copyright header to every python file
David Douard <david.douard@logilab.fr>
parents:
62
diff
changeset
|
6 | # This program is distributed in the hope that it will be useful, but WITHOUT |
2a97995628a3
added copyright header to every python file
David Douard <david.douard@logilab.fr>
parents:
62
diff
changeset
|
7 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
2a97995628a3
added copyright header to every python file
David Douard <david.douard@logilab.fr>
parents:
62
diff
changeset
|
8 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details |
2a97995628a3
added copyright header to every python file
David Douard <david.douard@logilab.fr>
parents:
62
diff
changeset
|
9 | # |
2a97995628a3
added copyright header to every python file
David Douard <david.douard@logilab.fr>
parents:
62
diff
changeset
|
10 | # You should have received a copy of the GNU General Public License along with |
2a97995628a3
added copyright header to every python file
David Douard <david.douard@logilab.fr>
parents:
62
diff
changeset
|
11 | # this program; if not, write to the Free Software Foundation, Inc., |
2a97995628a3
added copyright header to every python file
David Douard <david.douard@logilab.fr>
parents:
62
diff
changeset
|
12 | # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
13 | """ Copyright (c) 2007-2018 David Douard (Paris, FRANCE). |
91
f2a8f688dbc0
project moved to bitbucket
David Douard <david.douard@logilab.fr>
parents:
87
diff
changeset
|
14 | https://bitbucket.org/dddouard/pygpibtoolkit -- mailto:david.douard@sdfa3.org |
66
2a97995628a3
added copyright header to every python file
David Douard <david.douard@logilab.fr>
parents:
62
diff
changeset
|
15 | """ |
22
b2f4646161be
Begin of a HPGL plotter application (PyQt4)
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
16 | |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
17 | import os |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
18 | import sys |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
19 | import time |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
20 | |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
21 | from PyQt5 import QtWidgets, QtGui, QtCore, QtPrintSupport, uic |
98
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
22 | from PyQt5.QtCore import Qt, pyqtSignal |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
23 | |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
24 | from pygpibtoolkit.plotter.hpgl_qt import QHPGLPlotterWidget |
98
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
25 | from pygpibtoolkit.plotter.gpib_plotter import GPIBplotter |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
26 | |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
27 | from pygpibtoolkit.qt5.qpreferences import IntItem, UnicodeItem, ColorItem |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
28 | from pygpibtoolkit.qt5.qpreferences import BoolItem |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
29 | from pygpibtoolkit.qt5.qpreferences import PointItem, SizeItem, ByteArrayItem |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
30 | from pygpibtoolkit.qt5.qpreferences import AbstractPreferences |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
31 | from pygpibtoolkit.qt5.qpreferenceseditor import PreferencesEditor |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
32 | |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
33 | from pygpibtoolkit.tools import str_num_key |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
34 | |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
35 | |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
36 | HERE = os.path.abspath(os.path.dirname(__file__)) |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
37 | |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
38 | |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
39 | try: |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
40 | form_class, base_class = uic.loadUiType( |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
41 | os.path.join(HERE, "qhpgl_plotter.ui"), |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
42 | from_imports=True, import_from='pygpibtoolkit.plotter',) |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
43 | except Exception as e: |
98
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
44 | from pygpibtoolkit.plotter.qhpgl_plotter_ui import ( |
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
45 | Ui_MainWindow as form_class) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
46 | |
22
b2f4646161be
Begin of a HPGL plotter application (PyQt4)
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
47 | |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
48 | class Preferences(AbstractPreferences): |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
49 | ORGANISATION = "PyGPIBToolkit" |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
50 | APPLICATION = "qgpib_plotter" |
22
b2f4646161be
Begin of a HPGL plotter application (PyQt4)
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
51 | |
35
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
52 | _pos = PointItem() |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
53 | _size = SizeItem() |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
54 | _appState = ByteArrayItem() |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
55 | |
35
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
56 | device = UnicodeItem(default='/dev/ttyUSB0', |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
57 | name=u'device', |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
58 | description=u'GPIB device', |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
59 | group="GPIB settings") |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
60 | address = IntItem(default=5, min=0, max=16, |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
61 | name=u'GPIB address', |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
62 | group="GPIB settings") |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
63 | |
35
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
64 | background = ColorItem(default=QtGui.QColor("white"), |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
65 | name="Background", |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
66 | group="Colors") |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
67 | color0 = ColorItem(default=QtGui.QColor("black"), |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
68 | name="Pen #0", |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
69 | group="Colors") |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
70 | color1 = ColorItem(default=QtGui.QColor("green"), |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
71 | name="Pen #1", |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
72 | group="Colors") |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
73 | color2 = ColorItem(default=QtGui.QColor("red"), |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
74 | name="Pen #2", |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
75 | group="Colors") |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
76 | color3 = ColorItem(default=QtGui.QColor("blue"), |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
77 | name="Pen #3", |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
78 | group="Colors") |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
79 | color4 = ColorItem(default=QtGui.QColor("yellow"), |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
80 | name="Pen #4", |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
81 | group="Colors") |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
82 | color5 = ColorItem(default=QtGui.QColor("cyan"), |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
83 | name="Pen #5", |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
84 | group="Colors") |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
85 | color6 = ColorItem(default=QtGui.QColor("magenta"), |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
86 | name="Pen #6", |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
87 | group="Colors") |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
88 | color7 = ColorItem(default=QtGui.QColor("darkred"), |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
89 | name="Pen #7", |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
90 | group="Colors") |
78
b73a9d9e45ec
Add an option to qgpib_plotter to make it auto display any newly received plot (+ fix in plot list management)
David Douard <david.douard@logilab.fr>
parents:
76
diff
changeset
|
91 | |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
92 | autodisplay = BoolItem( |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
93 | default=True, |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
94 | name="Auto display", |
98
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
95 | description=( |
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
96 | "Automatically display a new plot as soon as it is received"), |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
97 | group="Misc") |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
98 | |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
99 | |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
100 | class QtHPGLPlotter(QtWidgets.QMainWindow, form_class): |
22
b2f4646161be
Begin of a HPGL plotter application (PyQt4)
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
101 | def __init__(self, parent=None): |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
102 | super().__init__(parent) |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
103 | self._plots = {} |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
104 | self._prefs = Preferences() |
78
b73a9d9e45ec
Add an option to qgpib_plotter to make it auto display any newly received plot (+ fix in plot list management)
David Douard <david.douard@logilab.fr>
parents:
76
diff
changeset
|
105 | self._receiving = False |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
106 | |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
107 | self.setupUi(self) |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
108 | self.initializeGPIB() |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
109 | if self._prefs._pos: |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
110 | self.move(self._prefs._pos) |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
111 | if self._prefs._size: |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
112 | self.resize(self._prefs._size) |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
113 | if self._prefs._appState: |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
114 | self.restoreState(self._prefs._appState) |
35
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
115 | self.readPreferences() |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
116 | |
35
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
117 | def readPreferences(self): |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
118 | bg = self._prefs.background |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
119 | if bg and bg.isValid(): |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
120 | self.plotterWidget.qview.setBackgroundBrush(QtGui.QBrush(bg)) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
121 | pen_colors = [self._prefs["color%d" % i] for i in range(8)] |
35
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
122 | self.plotterWidget.pen_colors = pen_colors |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
123 | |
35
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
124 | def replotCurrent(self): |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
125 | self.currentPlotChanged(self.plotsView.currentIndex()) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
126 | |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
127 | def setupUi(self, widget): |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
128 | super().setupUi(widget) |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
129 | # actions defined in designer |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
130 | self.actionPreferences.triggered.connect(self.preferencesTriggered) |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
131 | self.actionQuit.triggered.connect(self.quitTriggered) |
25
32d0d1cd44c3
add main menu shotcuts and make first openened file displayed
David Douard <david.douard@logilab.fr>
parents:
23
diff
changeset
|
132 | self.actionQuit.setShortcut(QtGui.QKeySequence(u'Ctrl+Q')) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
133 | self.actionOpen.triggered.connect(self.openTriggered) |
25
32d0d1cd44c3
add main menu shotcuts and make first openened file displayed
David Douard <david.douard@logilab.fr>
parents:
23
diff
changeset
|
134 | self.actionOpen.setShortcut(QtGui.QKeySequence(u'Ctrl+O')) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
135 | self.actionSave.triggered.connect(self.saveTriggered) |
25
32d0d1cd44c3
add main menu shotcuts and make first openened file displayed
David Douard <david.douard@logilab.fr>
parents:
23
diff
changeset
|
136 | self.actionSave.setShortcut(QtGui.QKeySequence(u'Ctrl+S')) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
137 | self.actionSaveAs.triggered.connect(self.saveAsTriggered) |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
138 | |
76
baab64c18885
add ability to print a plot in qgpibplotter
David Douard <david.douard@logilab.fr>
parents:
75
diff
changeset
|
139 | self.actionPrint.setShortcut(QtGui.QKeySequence(u'Ctrl+P')) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
140 | self.actionPrint.triggered.connect(self.printTriggered) |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
141 | |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
142 | self.plotterWidget = QHPGLPlotterWidget(self) |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
143 | self.setCentralWidget(self.plotterWidget) |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
144 | |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
145 | self.captureButton.toggled.connect(self.captureToggled) |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
146 | |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
147 | self._plots_list = QtCore.QStringListModel() |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
148 | self.plotsView.setModel(self._plots_list) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
149 | self.plotsView.activated.connect(self.currentPlotChanged) |
98
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
150 | self.plotsView.selectionModel().currentChanged.connect( |
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
151 | self.currentPlotChanged) |
78
b73a9d9e45ec
Add an option to qgpib_plotter to make it auto display any newly received plot (+ fix in plot list management)
David Douard <david.douard@logilab.fr>
parents:
76
diff
changeset
|
152 | self.setReceivingLed() |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
153 | |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
154 | def currentPlotChanged(self, index, old_index=None): |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
155 | if index.isValid(): |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
156 | value = self.plotsView.model().data(index, Qt.DisplayRole) |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
157 | |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
158 | self.plotterWidget.clear() |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
159 | self.plotterWidget.parse(self._plots[value]) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
160 | |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
161 | def preferencesTriggered(self, checked=False): |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
162 | PreferencesEditor(self._prefs, self).exec_() |
35
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
163 | self.readPreferences() |
3b7a38af5c42
Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.
David Douard <david.douard@logilab.fr>
parents:
34
diff
changeset
|
164 | self.replotCurrent() |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
165 | |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
166 | def quitTriggered(self, checked=False): |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
167 | self.close() |
22
b2f4646161be
Begin of a HPGL plotter application (PyQt4)
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
168 | |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
169 | def closeEvent(self, event): |
98
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
170 | # if self.promptForSave(): |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
171 | if 1: |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
172 | self._prefs._pos = self.pos() |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
173 | self._prefs._size = self.size() |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
174 | self._prefs._appState = self.saveState() |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
175 | event.accept() |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
176 | else: |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
177 | event.ignore() |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
178 | |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
179 | def openTriggered(self, checked=False): |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
180 | filenames = QtWidgets.QFileDialog.getOpenFileNames( |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
181 | self, "Open a HPGL file to display", '.', |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
182 | 'HPGL files (*.plt)\nAll files (*)') |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
183 | self.openFiles(filenames[0]) |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
184 | # self.displayFirst() |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
185 | |
38
73bd2fe81005
small improvement; display first plot at startup
David Douard <david.douard@logilab.fr>
parents:
36
diff
changeset
|
186 | def displayFirst(self): |
36
cb4124e3e75b
some improvements; can now give a bunch of files to open on cmd line; removed print statements
David Douard <david.douard@logilab.fr>
parents:
35
diff
changeset
|
187 | if not self.plotsView.currentIndex().isValid(): |
cb4124e3e75b
some improvements; can now give a bunch of files to open on cmd line; removed print statements
David Douard <david.douard@logilab.fr>
parents:
35
diff
changeset
|
188 | self.plotsView.setCurrentIndex(self.plotsView.model().index(0, 0)) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
189 | |
36
cb4124e3e75b
some improvements; can now give a bunch of files to open on cmd line; removed print statements
David Douard <david.douard@logilab.fr>
parents:
35
diff
changeset
|
190 | def openFiles(self, filenames): |
38
73bd2fe81005
small improvement; display first plot at startup
David Douard <david.douard@logilab.fr>
parents:
36
diff
changeset
|
191 | ok = False |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
192 | for filename in filenames: |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
193 | if os.path.exists(filename): |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
194 | data = open(filename).read() |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
195 | name = os.path.basename(filename) |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
196 | name = os.path.splitext(name)[0] |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
197 | lst = self.plotsView.model().stringList() |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
198 | lst.append(name) |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
199 | self._plots[name] = data |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
200 | self.plotsView.model().setStringList(lst) |
38
73bd2fe81005
small improvement; display first plot at startup
David Douard <david.douard@logilab.fr>
parents:
36
diff
changeset
|
201 | ok = True |
75
069666c7bf6c
force display of opened file, instead of just adding ot to the plots list
David Douard <david.douard@logilab.fr>
parents:
66
diff
changeset
|
202 | if ok: |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
203 | self.plotsView.setCurrentIndex( |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
204 | self.plotsView.model().index(len(lst)-1, 0)) |
38
73bd2fe81005
small improvement; display first plot at startup
David Douard <david.douard@logilab.fr>
parents:
36
diff
changeset
|
205 | return ok |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
206 | |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
207 | def plotReceived(self, num): |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
208 | self._receiving = False |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
209 | self.setReceivingLed() |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
210 | plot, timestamp = self.captureThread.getPlot(num) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
211 | name = "plot_%s" % (num) |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
212 | self._plots[name] = plot |
78
b73a9d9e45ec
Add an option to qgpib_plotter to make it auto display any newly received plot (+ fix in plot list management)
David Douard <david.douard@logilab.fr>
parents:
76
diff
changeset
|
213 | model = self.plotsView.model() |
b73a9d9e45ec
Add an option to qgpib_plotter to make it auto display any newly received plot (+ fix in plot list management)
David Douard <david.douard@logilab.fr>
parents:
76
diff
changeset
|
214 | pos = model.rowCount() |
b73a9d9e45ec
Add an option to qgpib_plotter to make it auto display any newly received plot (+ fix in plot list management)
David Douard <david.douard@logilab.fr>
parents:
76
diff
changeset
|
215 | model.insertRows(pos, 1) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
216 | model.setData(model.index(pos), name) |
78
b73a9d9e45ec
Add an option to qgpib_plotter to make it auto display any newly received plot (+ fix in plot list management)
David Douard <david.douard@logilab.fr>
parents:
76
diff
changeset
|
217 | if self._prefs.autodisplay: |
b73a9d9e45ec
Add an option to qgpib_plotter to make it auto display any newly received plot (+ fix in plot list management)
David Douard <david.douard@logilab.fr>
parents:
76
diff
changeset
|
218 | self.plotsView.setCurrentIndex(model.index(pos)) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
219 | |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
220 | def plotStarted(self): |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
221 | self._receiving = True |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
222 | self.setReceivingLed() |
76
baab64c18885
add ability to print a plot in qgpibplotter
David Douard <david.douard@logilab.fr>
parents:
75
diff
changeset
|
223 | |
baab64c18885
add ability to print a plot in qgpibplotter
David Douard <david.douard@logilab.fr>
parents:
75
diff
changeset
|
224 | def printTriggered(self, checked=False): |
baab64c18885
add ability to print a plot in qgpibplotter
David Douard <david.douard@logilab.fr>
parents:
75
diff
changeset
|
225 | cindex = self.plotsView.currentIndex() |
baab64c18885
add ability to print a plot in qgpibplotter
David Douard <david.douard@logilab.fr>
parents:
75
diff
changeset
|
226 | if cindex and cindex.isValid(): |
78
b73a9d9e45ec
Add an option to qgpib_plotter to make it auto display any newly received plot (+ fix in plot list management)
David Douard <david.douard@logilab.fr>
parents:
76
diff
changeset
|
227 | # isn't there a simpler way of getting this? |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
228 | plotname = self.plotsView.model().data(cindex, Qt.DisplayRole) |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
229 | printer = QtPrintSupport.QPrinter() |
76
baab64c18885
add ability to print a plot in qgpibplotter
David Douard <david.douard@logilab.fr>
parents:
75
diff
changeset
|
230 | printer.setOutputFormat(printer.PdfFormat) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
231 | printer.setOutputFileName('%s.pdf' % plotname) |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
232 | prdialog = QtPrintSupport.QPrintDialog(printer) |
76
baab64c18885
add ability to print a plot in qgpibplotter
David Douard <david.douard@logilab.fr>
parents:
75
diff
changeset
|
233 | prdialog.setEnabledOptions(prdialog.PrintToFile) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
234 | if prdialog.exec_() == prdialog.Accepted: |
76
baab64c18885
add ability to print a plot in qgpibplotter
David Douard <david.douard@logilab.fr>
parents:
75
diff
changeset
|
235 | painter = QtGui.QPainter(printer) |
baab64c18885
add ability to print a plot in qgpibplotter
David Douard <david.douard@logilab.fr>
parents:
75
diff
changeset
|
236 | painter.setRenderHint(painter.Antialiasing) |
baab64c18885
add ability to print a plot in qgpibplotter
David Douard <david.douard@logilab.fr>
parents:
75
diff
changeset
|
237 | self.plotterWidget.qview.render(painter) |
baab64c18885
add ability to print a plot in qgpibplotter
David Douard <david.douard@logilab.fr>
parents:
75
diff
changeset
|
238 | painter.end() |
baab64c18885
add ability to print a plot in qgpibplotter
David Douard <david.douard@logilab.fr>
parents:
75
diff
changeset
|
239 | else: |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
240 | QtWidgets.QMessageBox.warning( |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
241 | self, "Nothing to print", |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
242 | "Unable to print: <br><b>No plot is currently selected.</b>") |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
243 | |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
244 | def saveTriggered(self, checked=False): |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
245 | print("save") |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
246 | |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
247 | def saveAsTriggered(self, checked=False): |
34
022e881b758e
moved some files & one bugfix
David Douard <david.douard@logilab.fr>
parents:
32
diff
changeset
|
248 | index = self.plotsView.selectionModel().currentIndex() |
022e881b758e
moved some files & one bugfix
David Douard <david.douard@logilab.fr>
parents:
32
diff
changeset
|
249 | if index.isValid(): |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
250 | filename = QtGui.QFileDialog.getSaveFileName( |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
251 | self, "Selecte a file name to save HPGL file", '.', |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
252 | 'HPGL files (*.plt)\nAll files (*)') |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
253 | value = self.plotsView.model().data(index, Qt.DisplayRole) |
34
022e881b758e
moved some files & one bugfix
David Douard <david.douard@logilab.fr>
parents:
32
diff
changeset
|
254 | open(filename, 'w').write(self._plots[value]) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
255 | |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
256 | def initializeGPIB(self): |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
257 | self._online = False |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
258 | try: |
98
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
259 | self.gpib_plotter = GPIBplotter( |
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
260 | device=self._prefs.device, |
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
261 | address=self._prefs.address, |
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
262 | ) |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
263 | self.captureThread = GPIBReceiver(self.gpib_plotter) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
264 | self.captureThread.plotReceived.connect(self.plotReceived) |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
265 | self.captureThread.plotStarted.connect(self.plotStarted) |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
266 | self.captureThread.start() |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
267 | except Exception as e: |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
268 | self.captureThread = None |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
269 | self.gpib_plotter = None |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
270 | self.setCaptureLed() |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
271 | |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
272 | def captureToggled(self, state): |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
273 | if state: |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
274 | if self.gpib_plotter is None: |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
275 | self.initializeGPIB() |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
276 | if self.gpib_plotter is None: |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
277 | QtWidgets.QMessageBox.critical( |
98
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
278 | self, "GPIB error", |
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
279 | "<b>Unable to initialize GPIB connection</b>." |
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
280 | "<br>Please check your GPIB dongle and settings.") |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
281 | self._online = False |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
282 | self.setCaptureLed() |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
283 | return |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
284 | self._online = True |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
285 | self.captureThread.startCapture() |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
286 | else: |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
287 | if self.captureThread: |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
288 | self.captureThread.stopCapture() |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
289 | self._online = False |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
290 | self.setCaptureLed() |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
291 | |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
292 | def setCaptureLed(self): |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
293 | if self._online: |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
294 | icn = QtGui.QIcon(':/icons/led_green.svg') |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
295 | else: |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
296 | icn = QtGui.QIcon(':/icons/led_green_off.svg') |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
297 | self.captureButton.setIcon(icn) |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
298 | self.captureButton.setChecked(self._online) |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
299 | |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
300 | def setReceivingLed(self): |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
301 | if self._receiving: |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
302 | icn = QtGui.QIcon(':/icons/led_red.svg') |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
303 | else: |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
304 | icn = QtGui.QIcon(':/icons/led_red_off.svg') |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
305 | self.receivingButton.setIcon(icn) |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
306 | |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
307 | |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
308 | class GPIBReceiver(QtCore.QThread): |
98
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
309 | plotStarted = pyqtSignal() |
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
310 | plotReceived = pyqtSignal(int) |
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
311 | |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
312 | def __init__(self, cnx, parent=None): |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
313 | super().__init__(parent) |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
314 | self.gpibplotter = cnx |
98
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
315 | self.gpibplotter.plot_started_cb = self.plotStarted.emit |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
316 | |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
317 | self._cancel = False |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
318 | # self._nreceived = 0 |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
319 | self._plotsmutex = QtCore.QMutex() |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
320 | self._plots = [] |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
321 | self._capturing = False |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
322 | |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
323 | def cancel(self): |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
324 | self._cancel = True |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
325 | |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
326 | def startCapture(self): |
98
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
327 | self._capturing = True |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
328 | |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
329 | def stopCapture(self): |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
330 | self._capturing = False |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
331 | |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
332 | def run(self): |
98
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
333 | while not self._cancel: |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
334 | if not self._capturing: |
98
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
335 | self.msleep(100) |
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
336 | continue |
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
337 | |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
338 | plot = self.gpibplotter.load_plot(wait_timeout=0.1) |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
339 | timestamp = time.time() |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
340 | if plot: |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
341 | self._plotsmutex.lock() |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
342 | self._plots.append((plot, timestamp)) |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
343 | n = len(self._plots) |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
344 | self._plotsmutex.unlock() |
98
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
345 | |
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
346 | self.plotReceived.emit(n - 1) |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
347 | self.msleep(10) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
348 | |
27
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
349 | def getPlot(self, num): |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
350 | self._plotsmutex.lock() |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
351 | try: |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
352 | return self._plots[num] |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
353 | finally: |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
354 | self._plotsmutex.unlock() |
0f8f2621418f
added a gpib plot receiver mockup for testing purpose. Seems to work.
David Douard <david.douard@logilab.fr>
parents:
26
diff
changeset
|
355 | |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
356 | |
28
0a7270d439d0
added a start scrip & cleanups
David Douard <david.douard@logilab.fr>
parents:
27
diff
changeset
|
357 | def main(): |
98
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
358 | global GPIBplotter |
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
359 | |
28
0a7270d439d0
added a start scrip & cleanups
David Douard <david.douard@logilab.fr>
parents:
27
diff
changeset
|
360 | import optparse |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
361 | opt = optparse.OptionParser( |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
362 | 'A simple PyQt4 HP7470A GPIB plotter emulator for USB-GPIB bundle ' |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
363 | '(Prologix)') |
28
0a7270d439d0
added a start scrip & cleanups
David Douard <david.douard@logilab.fr>
parents:
27
diff
changeset
|
364 | opt.add_option('-m', '--mockup', default=False, |
0a7270d439d0
added a start scrip & cleanups
David Douard <david.douard@logilab.fr>
parents:
27
diff
changeset
|
365 | action="store_true", |
0a7270d439d0
added a start scrip & cleanups
David Douard <david.douard@logilab.fr>
parents:
27
diff
changeset
|
366 | dest='mockup', |
0a7270d439d0
added a start scrip & cleanups
David Douard <david.douard@logilab.fr>
parents:
27
diff
changeset
|
367 | help='Use a pseudo GPIB connection (for test purpose)', |
0a7270d439d0
added a start scrip & cleanups
David Douard <david.douard@logilab.fr>
parents:
27
diff
changeset
|
368 | ) |
0a7270d439d0
added a start scrip & cleanups
David Douard <david.douard@logilab.fr>
parents:
27
diff
changeset
|
369 | opt.add_option('-v', '--verbose', default=False, |
0a7270d439d0
added a start scrip & cleanups
David Douard <david.douard@logilab.fr>
parents:
27
diff
changeset
|
370 | action="store_true", |
0a7270d439d0
added a start scrip & cleanups
David Douard <david.douard@logilab.fr>
parents:
27
diff
changeset
|
371 | dest="verbose", |
0a7270d439d0
added a start scrip & cleanups
David Douard <david.douard@logilab.fr>
parents:
27
diff
changeset
|
372 | help="Verbose mode",) |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
373 | |
28
0a7270d439d0
added a start scrip & cleanups
David Douard <david.douard@logilab.fr>
parents:
27
diff
changeset
|
374 | options, argv = opt.parse_args(sys.argv) |
98
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
375 | if options.mockup: |
4cbd3d410230
[plotter] fix and improve a bit the HPGL plotter emulator
David Douard <david.douard@logilab.fr>
parents:
91
diff
changeset
|
376 | from pygpibtoolkit.plotter.gpib_plotter_mockup import GPIBplotter |
28
0a7270d439d0
added a start scrip & cleanups
David Douard <david.douard@logilab.fr>
parents:
27
diff
changeset
|
377 | |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
378 | a = QtWidgets.QApplication(argv) |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
379 | w = QtHPGLPlotter() |
36
cb4124e3e75b
some improvements; can now give a bunch of files to open on cmd line; removed print statements
David Douard <david.douard@logilab.fr>
parents:
35
diff
changeset
|
380 | files = [f for f in argv[1:] if os.path.isfile(f)] |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
381 | files.sort(key=str_num_key) |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
382 | if w.openFiles(files): |
38
73bd2fe81005
small improvement; display first plot at startup
David Douard <david.douard@logilab.fr>
parents:
36
diff
changeset
|
383 | w.displayFirst() |
73bd2fe81005
small improvement; display first plot at startup
David Douard <david.douard@logilab.fr>
parents:
36
diff
changeset
|
384 | |
23
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
385 | w.show() |
cb97962a1ae9
make qplotter a working app: can new load several hpgl files à display them; have a preference system
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
386 | a.exec_() |
87
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
387 | |
59a0946aa3d1
port HPGL plotter emulator to PyQt5
David Douard <david.douard@logilab.fr>
parents:
78
diff
changeset
|
388 | |
28
0a7270d439d0
added a start scrip & cleanups
David Douard <david.douard@logilab.fr>
parents:
27
diff
changeset
|
389 | if __name__ == '__main__': |
0a7270d439d0
added a start scrip & cleanups
David Douard <david.douard@logilab.fr>
parents:
27
diff
changeset
|
390 | main() |