QT und OpenGL/Glut - KeyboardFunc



  • Ich benötige Unterstützung bei der Tastatureinbindung bei QT mit GLUT.

    Aufbauend auf die OpenGL Tutorial auf der Trolltech Seite habe ich diesen Code:

    // speichert den Zustand der Taste fuer die Vorwaertsbewegung
    bool move_forward = false;
    
    // wird aufgerufen, wenn eine Taste GEDRUECKT wird
    void GLWidget::myKeyboardFunc(unsigned char key, int x, int y)
    {
        switch(key)
        {
            case GLUT_KEY_UP: move_forward = true; break;
            // and other keys
        };
    }
    
    // wird aufgerufen, wenn eine Taste LOSGELASSEN wird
    void GLWidget::myKeyboardUpFunc(unsigned char key, int x, int y)
    {
        switch(key)
        {
            case GLUT_KEY_UP: move_forward = false; break;
            // and other keys
        };
    }
    
    // hier findet die Simulation statt!
    void GLWidget::myIdleFunc()
    {
        // ...
        if (move_forward) { // z.B.: glTranslatef(....); }
    
        // und andere Variablen abfragen...
    }
    

    in meine glwidget.cpp gepackt und

    glutInit....
    glutInitDisplayMode...
    ..
    glutKeyboardFunc(myKeyboardFunc);
        glutKeyboardUpFunc(myKeyboardUpFunc);
        glutIdleFunc(myIdleFunc);
    

    in die main.cpp

    doch es mag nicht wirklich funtionieren...

    Was mache ich falsch?



  • wenn du qt benutzt brauchst du kein glut mehr.
    im qglwidget wertest du einfach die key-events aus.
    falls du eine taste gedrueckt halten willst, schenke isAutoRepeat aufmerksamkeit.


Anmelden zum Antworten