def get_lines(self): lines = list() start_x = self.geometry().x() + (self.geometry().width() / 2) start_y = self.geometry().y() + (self.geometry().height() / 2) start = QtCore.QPoint(start_x, start_y) for node in self.get_input() + self.get_output(): end_x = node.geometry().x() + (node.geometry().width() / 2) end_y = node.geometry().y() + (node.geometry().height() / 2) end = QtCore.QPoint(end_x, end_y) ln = QtCore.QLine(start, end) lines.append(ln) return lines
def drawBackground(self, painter, rect): """ Filling. """ realLeft = int(rect.left()) realRight = int(rect.right()) realTop = int(rect.top()) realBottom = int(rect.bottom()) gridSize = 50 firstLeft = realLeft - (realLeft % gridSize) firstTop = realTop - (realTop % gridSize) # draw the grid lines lines = [] for x in range(firstLeft, realRight, gridSize): lines.append(QtCore.QLine(x, realTop, x, realBottom)) for y in range(firstTop, realBottom, gridSize): lines.append(QtCore.QLine(realLeft, y, realRight, y)) gridpen = QtGui.QPen(QtCore.Qt.darkGray) painter.setPen(gridpen) painter.drawLines(lines)
def paintEvent(self, event): """ H2 -- mouseReleaseEvent =================== **This function is nessecary as GLPlotWidget does not offer pre-built plot settings. With this the axis are painted, scaled and named.** """ self.makeCurrent() painter = QtGui.QPainter() painter.begin(self) OpenGL.GL.glClear(OpenGL.GL.GL_COLOR_BUFFER_BIT) OpenGL.GL.glColor(1, 1, 0) OpenGL.GL.glPushAttrib(OpenGL.GL.GL_ALL_ATTRIB_BITS) OpenGL.GL.glMatrixMode(OpenGL.GL.GL_PROJECTION) OpenGL.GL.glPushMatrix() OpenGL.GL.glMatrixMode(OpenGL.GL.GL_MODELVIEW) OpenGL.GL.glPushMatrix() self.vbo = glvbo.VBO(self.data) self.vbo.bind() OpenGL.GL.glEnableClientState(OpenGL.GL.GL_VERTEX_ARRAY) OpenGL.GL.glVertexPointer(2, OpenGL.GL.GL_FLOAT, 0, self.vbo) OpenGL.GL.glDrawArrays(OpenGL.GL.GL_POINTS, 0, self.count) self.vbo.unbind() OpenGL.GL.glDisableClientState(OpenGL.GL.GL_VERTEX_ARRAY) OpenGL.GL.glMatrixMode(OpenGL.GL.GL_MODELVIEW) OpenGL.GL.glPopMatrix() OpenGL.GL.glMatrixMode(OpenGL.GL.GL_PROJECTION) OpenGL.GL.glPopMatrix() OpenGL.GL.glPopAttrib() # paint the axis painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.setPen(QtGui.QColor(255, 255, 255)) xaxis = QtCore.QLine(20, 130, 395, 130) yaxis = QtCore.QLine(20, 5, 20, 130) xarrow1 = QtCore.QLine(395, 130, 390, 127) xarrow2 = QtCore.QLine(395, 130, 390, 133) yarrow1 = QtCore.QLine(20, 5, 17, 10) yarrow2 = QtCore.QLine(20, 5, 23, 10) painter.drawLines([xaxis, yaxis, yarrow1, yarrow2, xarrow1, xarrow2]) # paint the scale line scales_x = [] scales_y = [] for i in range(1, 6): scales_x.append(QtCore.QLine(76 * i, 130, 76 * i, 125)) scales_y.append(QtCore.QLine(20, 130 - 22 * i, 25, 130 - 22 * i)) painter.drawLines(scales_x) painter.drawLines(scales_y) # paint the axis description painter.drawText(QtCore.QPoint(10, 145), '0') for i in range(1, 6): xstring = "{:2.1f}".format(i * 0.2) xpoint = QtCore.QPoint(0, 135 - 22 * i) painter.drawText(xpoint, xstring) for i in range(1, 6): ystring = str(i * 3) + 'kHz' ypoint = QtCore.QPoint(76 * i - 20, 145) painter.drawText(ypoint, ystring) painter.end()
def get_lines(self, vals, slot, min_val, max_val): sy = (slot+1)*self.slot_height screen_vals = [(serial_read_counter, self.pixel(val, min_val, max_val, 0, self.slot_height)) for (serial_read_counter, val) in vals] return [QtCore.QLine(sx, sy-sh, sx, sy) for (sx,sh) in screen_vals]