QT und OpenGL/Glut

Alles rund um die Programmierung mit Qt
Antworten
AndiLatte
Beiträge: 104
Registriert: 13. November 2007 13:39

QT und OpenGL/Glut

Beitrag von AndiLatte »

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

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

Code: Alles auswählen

// 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

Code: Alles auswählen

glutInit....
glutInitDisplayMode...
..
glutKeyboardFunc(myKeyboardFunc);
    glutKeyboardUpFunc(myKeyboardUpFunc);
    glutIdleFunc(myIdleFunc); 
in die main.cpp

doch es mag nicht wirklich funtionieren...

Was mache ich falsch?
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Ich mag nicht wirklich raten was nicht funktioniert, aber in den OpenGL-Examples gibt ein GLControlWidget, welches mir einiges abgenommen hat.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
AndiLatte
Beiträge: 104
Registriert: 13. November 2007 13:39

Beitrag von AndiLatte »

macman hat geschrieben:..., aber in den OpenGL-Examples gibt ein GLControlWidget, welches mir einiges abgenommen hat.
Ja das hört sich doch sehr gut an. Weisst du noch wo ich die Beispiele finde?
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Bei Qt4 ist es nicht mehr dabei und die Qt3-Examples liegen nicht im Netz. Ich leg es dir ins Postfach.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
DeepDiver
Beiträge: 34
Registriert: 7. November 2007 10:10
Wohnort: Fürstenfeldbruck
Kontaktdaten:

Beitrag von DeepDiver »

AndiLatte
Beiträge: 104
Registriert: 13. November 2007 13:39

Beitrag von AndiLatte »

macman hat geschrieben:Bei Qt4 ist es nicht mehr dabei und die Qt3-Examples liegen nicht im Netz. Ich leg es dir ins Postfach.
sau gut, danke 8)

jetzt besteht mein Projekt aus 7 Dateien:
* glwidget.cpp
* glwidget.h
* mainwindow.cpp
* mainwindow.h
* main.h
* glcontrolwidget.cpp
* glcontrolwidget.h

Ich hatte vorher meine Maus Befehle (zb. mousePressEvent) in glwidget.cpp. Diese sind ja nun überflüssig, da glcontrolwidget.cpp schon alles hat. mit qmake/make konnte ich es kompilieren, aber wie wechsel ich jetzt von den Mausbefehlen aus glwidget.cpp zu denen aus glcontrolwidget.cpp? Bin noch nicht wirklich fit beim Programmieren :?
AndiLatte
Beiträge: 104
Registriert: 13. November 2007 13:39

Beitrag von AndiLatte »

DeepDiver hat geschrieben:Qt OpenGL Examples sind hier:
http://doc.trolltech.com/4.3/examples.html#opengl
danke schön. jetzt hab ich den aufbauder trolltech seite mit den verschiedenen versionen und den jeweiligen beispielen durchschaut :wink:
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

AndiLatte hat geschrieben:aber wie wechsel ich jetzt von den Mausbefehlen aus glwidget.cpp zu denen aus glcontrolwidget.cpp?
Dein GLWidget muss vom GLControlWidget erben.

Code: Alles auswählen

class GLWidget : public GLControlWidget
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
AndiLatte
Beiträge: 104
Registriert: 13. November 2007 13:39

Beitrag von AndiLatte »

macman hat geschrieben:Bei Qt4 ist es nicht mehr dabei und die Qt3-Examples liegen nicht im Netz. Ich leg es dir ins Postfach.
Hey,

ich hab die QT3 Beispiele gefunden:

http://rpmfind.net/linux/RPM/opensuse/1 ... 2.ppc.html

viell hast du daran auch Interesse..
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

AndiLatte hat geschrieben:viell hast du daran auch Interesse..
Danke, aber ich hab den Kram noch in mehrfacher Ausführung auf der Platte liegen :-)
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
twessels
Beiträge: 18
Registriert: 28. Mai 2007 13:23
Kontaktdaten:

Beitrag von twessels »

hi,
Glut wird durch Qt ziemlich überflüssig. Qt bietet ja schon zahlreiche, eigene Events an um mit den Programm zu agieren, dafür wurde Glut einst geschaffen. Falls es dir auf die Zeichenroutinen wie gluWireCube() oder gluLookAt() ankommt ist das auch kein Problem.

Aber ich würde erstmal QKeyEvent bevorzugen anstatt glutKeyboardFunc()
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
Antworten