Esempio n. 1
0
 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
Esempio n. 2
0
    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)
Esempio n. 3
0
    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()
Esempio n. 4
0
 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]