Select vertice with mouse cursor

Hello there,
I am new to openGL. I am trying to create an application for solving rubics cube. So far I have coded the cube drawing with changable nr of squares on a single wall.
I can rotate the cube, my problem is I have no idea how to select a certain vertice on the image. I can read the mouse position from mousePressEvent but those coordinates dont give me anything. I need to select a vertice to highlight it and after click be abble to rotate a certain row to solve the cube. Actually I would only swap colors.
This is a screen from my app:

This is how I draw the cube, I create 6 big squares for the background and many little ones for each wall. This is my way of getting borders between vertices.

void MyGLWidget::draw()
{
    // define piece lengh:
    GLfloat pieceLengh = CUBE_LENGH / sqrLengh;
    GLfloat innerPieceLengh = pieceLengh - CUBE_LINE_WIDTH;

    GLfloat x;
    GLfloat y;
    GLfloat z;

    // --------------------------------------------------------------

    // start drawing
    for (int wall = 0; wall < CUBE_WALLS; wall++) // whole wall draw
    {
        x = (CUBE_RADIUS * -1);
        y = CUBE_RADIUS;
        z = CUBE_RADIUS;

        qglColor(Qt::darkGray);
        rotateVetice(1, wall);
        glBegin(GL_QUADS);

            glVertex3f(x, y, z);

            y -= (CUBE_LENGH + CUBE_LINE_WIDTH);
            glVertex3f(x, y, z);

            x += (CUBE_LENGH + CUBE_LINE_WIDTH);
            glVertex3f(x, y, z);

            y += (CUBE_LENGH + CUBE_LINE_WIDTH);
            glVertex3f(x, y, z);

        glEnd();
        rotateVetice(-1, wall);

        z = CUBE_RADIUS + CUBE_LINE_WIDTH;

        for (int row = 0; row < sqrLengh; row++) // single row
        {
            y = CUBE_RADIUS - (pieceLengh * row) -  CUBE_LINE_WIDTH;

            for(int column = 0; column < sqrLengh; column++) // single cell
            {
                x = (CUBE_RADIUS * -1) + (pieceLengh * column) + CUBE_LINE_WIDTH;

                qglColor(refSquareMatrix[wall][row][column]);
                rotateVetice(1, wall);
                glBegin(GL_QUADS);

                    glVertex3f(x, y, z);

                    y -= innerPieceLengh;
                    glVertex3f(x, y, z);

                    x += innerPieceLengh;
                    glVertex3f(x, y, z);

                    y += innerPieceLengh;
                    glVertex3f(x, y, z);

                glEnd();
                rotateVetice(-1, wall);
            }
        }
    }
}

I would really aprichiate any help in this matter. I have only one day lefy to finish the project and im really stuck.