plotter/qgpib_plotter.py

changeset 35
3b7a38af5c42
parent 34
022e881b758e
child 36
cb4124e3e75b
equal deleted inserted replaced
34:022e881b758e 35:3b7a38af5c42
15 15
16 ldir = os.path.abspath(os.path.dirname(__file__)) 16 ldir = os.path.abspath(os.path.dirname(__file__))
17 sys.path.append(ldir) 17 sys.path.append(ldir)
18 form_class, base_class = uic.loadUiType(os.path.join(ldir, "qhpgl_plotter.ui")) 18 form_class, base_class = uic.loadUiType(os.path.join(ldir, "qhpgl_plotter.ui"))
19 19
20 from qpreferences import PreferenceItem, AbstractPreferences, PreferencesEditor 20 from qpreferences import BaseItem, IntItem, UnicodeItem, ColorItem
21 from qpreferences import PointItem, SizeItem, ByteArrayItem
22 from qpreferences import AbstractPreferences
23 from qpreferenceseditor import PreferencesEditor
21 24
22 class Preferences(AbstractPreferences): 25 class Preferences(AbstractPreferences):
23 ORGANISATION="Logilab" 26 ORGANISATION="Logilab"
24 APPLICATION="qgpib_plotter" 27 APPLICATION="qgpib_plotter"
25 28
26 device = PreferenceItem('/dev/ttyUSB0', name=u'device', description=u'GPIB device') 29 _pos = PointItem()
27 address = PreferenceItem(5, name=u'GPIB address') 30 _size = SizeItem()
28 _pos = PreferenceItem(basetype=QtCore.QPoint) 31 _appState = ByteArrayItem()
29 _size = PreferenceItem(basetype=QtCore.QSize) 32
30 _appState = PreferenceItem(basetype=QtCore.QByteArray) 33 device = UnicodeItem(default='/dev/ttyUSB0',
31 34 name=u'device',
35 description=u'GPIB device',
36 group="GPIB settings")
37 address = IntItem(default=5, min=0, max=16,
38 name=u'GPIB address',
39 group="GPIB settings")
40
41 background = ColorItem(default=QtGui.QColor("white"),
42 name="Background",
43 group="Colors")
44 color0 = ColorItem(default=QtGui.QColor("black"),
45 name="Pen #0",
46 group="Colors")
47 color1 = ColorItem(default=QtGui.QColor("green"),
48 name="Pen #1",
49 group="Colors")
50 color2 = ColorItem(default=QtGui.QColor("red"),
51 name="Pen #2",
52 group="Colors")
53 color3 = ColorItem(default=QtGui.QColor("blue"),
54 name="Pen #3",
55 group="Colors")
56 color4 = ColorItem(default=QtGui.QColor("yellow"),
57 name="Pen #4",
58 group="Colors")
59 color5 = ColorItem(default=QtGui.QColor("cyan"),
60 name="Pen #5",
61 group="Colors")
62 color6 = ColorItem(default=QtGui.QColor("magenta"),
63 name="Pen #6",
64 group="Colors")
65 color7 = ColorItem(default=QtGui.QColor("darkred"),
66 name="Pen #7",
67 group="Colors")
32 68
33 class QtHPGLPlotter(QtGui.QMainWindow, form_class): 69 class QtHPGLPlotter(QtGui.QMainWindow, form_class):
34 def __init__(self, parent=None): 70 def __init__(self, parent=None):
35 QtGui.QMainWindow.__init__(self, parent) 71 QtGui.QMainWindow.__init__(self, parent)
36 self._plots = {} 72 self._plots = {}
41 self.move(self._prefs._pos) 77 self.move(self._prefs._pos)
42 if self._prefs._size: 78 if self._prefs._size:
43 self.resize(self._prefs._size) 79 self.resize(self._prefs._size)
44 if self._prefs._appState: 80 if self._prefs._appState:
45 self.restoreState(self._prefs._appState) 81 self.restoreState(self._prefs._appState)
46 82 self.readPreferences()
83
84 def readPreferences(self):
85 bg = self._prefs.background
86 if bg and bg.isValid():
87 self.plotterWidget.qview.setBackgroundBrush(QtGui.QBrush(bg))
88 pen_colors = [self._prefs["color%d"%i] for i in range(8)]
89 print
90 self.plotterWidget.pen_colors = pen_colors
91
92 def replotCurrent(self):
93 self.currentPlotChanged(self.plotsView.currentIndex())
94
47 def setupUi(self): 95 def setupUi(self):
48 form_class.setupUi(self, self) # call qtdesigner generated form creation 96 form_class.setupUi(self, self) # call qtdesigner generated form creation
49 # actions defined in designer 97 # actions defined in designer
50 self.connect(self.actionPreferences, SIGNAL('triggered(bool)'), 98 self.connect(self.actionPreferences, SIGNAL('triggered(bool)'),
51 self.preferencesTriggered) 99 self.preferencesTriggered)
82 self.plotterWidget.clear() 130 self.plotterWidget.clear()
83 self.plotterWidget.parse(self._plots[value]) 131 self.plotterWidget.parse(self._plots[value])
84 132
85 def preferencesTriggered(self, checked=False): 133 def preferencesTriggered(self, checked=False):
86 PreferencesEditor(self._prefs, self).exec_() 134 PreferencesEditor(self._prefs, self).exec_()
135 self.readPreferences()
136 self.replotCurrent()
87 137
88 def quitTriggered(self, checked=False): 138 def quitTriggered(self, checked=False):
89 self.close() 139 self.close()
90 140
91 def closeEvent(self, event): 141 def closeEvent(self, event):

mercurial