plotter/hpgl_qt.py

Sun, 03 Feb 2008 23:39:27 +0100

author
David Douard <david.douard@logilab.fr>
date
Sun, 03 Feb 2008 23:39:27 +0100
changeset 35
3b7a38af5c42
parent 32
59da528bc470
child 36
cb4124e3e75b
permissions
-rw-r--r--

Refactored the preference system for the qt gpib plotter app. One can now set the colors for plotting pens.

21
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
2 import numpy
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
3 import pylab
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
4 import math
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
5 import new # monkey patching...
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
6
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
7 from PyQt4 import QtGui, QtCore
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
8 from PyQt4.QtCore import Qt, SIGNAL
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
9
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
10 from hpgl_parser import HPGLParser
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
11
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
12 class QHPGLPlotterWidget(HPGLParser, QtGui.QWidget):
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
13 pen_styles = {2: [0.4, 0.6],
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
14 3: [0.6, 0.4],
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
15 4: [0.7, 0.1, 0.1, 0.1],
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
16 5: [0.6, 0.1, 0.2, 0.1],
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
17 6: [0.45, 0.1, 0.1, 0.2, 0.1, 0.05],
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
18 }
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
19 pen_colors = ["black", "green", "red", "blue", "yellow", "cyan", "magenta",
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
20 "darkred", "darkblue"]
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
21
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
22 def __init__(self, parent=None):
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
23 QtGui.QWidget.__init__(self, parent)
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: 21
diff changeset
24 l = QtGui.QVBoxLayout(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: 21
diff changeset
25 l.setMargin(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: 21
diff changeset
26 self.qview = QtGui.QGraphicsView(self)
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: 32
diff changeset
27 self.qview.setRenderHints(QtGui.QPainter.Antialiasing)
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: 21
diff changeset
28 self.qview.scale(0.5,-0.5)
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: 21
diff changeset
29 l = self.layout()
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: 21
diff changeset
30 l.addWidget(self.qview)
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: 21
diff changeset
31 self.setBackgroundRole(QtGui.QPalette.Base)
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: 21
diff changeset
32 self.setSizePolicy(QtGui.QSizePolicy.Expanding,
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: 21
diff changeset
33 QtGui.QSizePolicy.Expanding)
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: 21
diff changeset
34 self.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: 21
diff changeset
35 HPGLParser.__init__(self)
21
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
36
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: 21
diff changeset
37 def parse(self, 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: 21
diff changeset
38 HPGLParser.parse(self, 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: 21
diff changeset
39 self.resize(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: 21
diff changeset
40
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: 21
diff changeset
41 def clear(self):
21
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
42 self.qpen = QtGui.QPen(QtCore.Qt.blue)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
43 self.qbrush = QtGui.QBrush(QtCore.Qt.blue)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
44 self.qfont = QtGui.QFont('Courier')
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
45 self.qantialiased = False
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
46 self.qtransformed = False
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
47 self.qscene = QtGui.QGraphicsScene()
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: 21
diff changeset
48 self.qview.setScene(self.qscene)
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: 21
diff changeset
49
21
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
50 def _get_PW(self):
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
51 return self._pen_width
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
52 def _set_PW(self, value):
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
53 value = float(value)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
54 #print "set pen width", value, value*300.0/75.0
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
55 #self.qpen.setWidthF(value*300.0/75.0)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
56 self._pen_width = value
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
57 pen_width = property(_get_PW, _set_PW)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
58
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
59 def LT(self):
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
60 HPGLParser.LT(self)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
61 if self.line_type == 0:
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
62 self.qpen.setStyle(Qt.SolidLine)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
63 elif self.line_type == 1:
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
64 self.qpen.setStyle(Qt.DotLine)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
65 else:
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
66 pattern = numpy.array(self.pen_styles[self.line_type])
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
67 x0, x1, y0, y1 = self.scale
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
68 dist = math.sqrt((x1-x0)**2 + (y1-y0)**2)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
69 pattern = self.pattern_len*dist/100.0 * pattern
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
70 if self.qpen.widthF()>0:
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
71 pattern = pattern/self.qpen.widthF()
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
72 self.qpen.setDashPattern(pattern.tolist())
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
73
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
74 def SP(self):
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
75 HPGLParser.SP(self)
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: 32
diff changeset
76 color = self.pen_colors[self.pen]
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: 32
diff changeset
77 if isinstance(color, tuple):
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: 32
diff changeset
78 color = QtGui.QColor(*color)
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: 32
diff changeset
79 else:
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: 32
diff changeset
80 color = QtGui.QColor(color)
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: 32
diff changeset
81 self.qpen.setColor(color)
21
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
82
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
83 def parse(self, data):
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
84 HPGLParser.parse(self, data)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
85 self.update()
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
86 self.qview.fitInView(self.qscene.sceneRect(), Qt.KeepAspectRatio)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
87
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
88 def minimumSizeHint(self):
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
89 return QtCore.QSize(100, 100)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
90
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
91 def sizeHint(self):
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
92 return QtCore.QSize(400, 400)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
93
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
94 def resizeEvent(self, event):
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
95 self.qview.fitInView(self.qscene.sceneRect(), Qt.KeepAspectRatio)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
96 QtGui.QWidget.resizeEvent(self, event)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
97
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
98 def plot_lines(self, points):
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
99 if len(points) == 1:
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
100 return
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
101 pa = QtGui.QPainterPath()
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
102 pa.addPolygon(QtGui.QPolygonF([QtCore.QPointF(*p) for p in points]))
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
103 self.qscene.addPath(pa, self.qpen)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
104
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
105 def plot_symbols(self, points):
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
106 pass
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
107
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
108 def plot_string(self, s):
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
109 cw, ch = self.get_char_size()
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
110 # this is very ugly and so, but I don't understand haw is
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
111 # computed string positionning in HPGL...
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
112 t0 = self.qscene.addSimpleText(" ", self.qfont)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
113 br = t0.boundingRect()
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
114 mw = br.width()
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
115 mh = br.height()
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
116 self.qscene.removeItem(t0)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
117 # don't ask me why theses constants are here, they seem OK, that's all
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
118 t = self.qscene.addSimpleText(s, self.qfont)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
119 t.scale(1.5 * cw/mw, -2.0 * ch/mh)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
120 x, y = self.pos
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
121 t.moveBy(x,y)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
122 br = t.boundingRect()
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
123 t.moveBy(-0.5*cw, math.sqrt(2)*ch)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
124
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
125
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
126 if __name__=='__main__':
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
127 import sys
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
128 a = QtGui.QApplication(sys.argv)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
129 mw = QtGui.QMainWindow()
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
130 w = QtGui.QWidget(mw)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
131 mw.setCentralWidget(w)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
132
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
133 l = QtGui.QVBoxLayout(w)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
134 p = QHPGLPlotterWidget(w)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
135 l.addWidget(p, 1)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
136 b = QtGui.QPushButton("Replot", w)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
137 l.addWidget(b)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
138 def plot():
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
139 p.parse(open(sys.argv[1]).read())
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
140 b.connect(b, SIGNAL('pressed()'), plot)
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
141 mw.show()
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
142 plot()
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
143 a.exec_()
66b7cd43bac1 Add HPGL plotter backend for Qt4
David Douard <david.douard@logilab.fr>
parents:
diff changeset
144

mercurial