GLWidget (OpenGL) in GUI (mit Designer erstellt) integrieren

Alles rund um die Programmierung mit Qt
Antworten
c++coder
Beiträge: 47
Registriert: 11. Juli 2005 00:20
Kontaktdaten:

GLWidget (OpenGL) in GUI (mit Designer erstellt) integrieren

Beitrag von c++coder »

hi,
ich will mein GLWidget (Opengl) in mein Widget das ich mit dem Designer gemacht habe nennt sich QT_OpenGL_mit_GUI (ist das von QMainWindow abgeleitet???) integrieren!

dachte das kann so irgendwie gehen:

Code: Alles auswählen

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QT_OpenGL_mit_GUI w;
    GLWidget *gl = new GLWidget();
    gl->loadModel("spaceship.3ds");
    gl->initializeGL();
    gl->resizeGL(800, 600);
    gl->show();
    w.setCentralWidget(gl);
    w.show();
    a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
    return a.exec();
    // irgendwo noch das delete gl;
}
0 error aber seh kein OpenGL;/ die OpenGL sache hab ich schon in einer QT Console Application getestet, dort gehts prima!!

cu
c++coder
Beiträge: 47
Registriert: 11. Juli 2005 00:20
Kontaktdaten:

Beitrag von c++coder »

fehler gefunden: die spaceship.3ds war in einem anderen ordner *g*

aber wie kann ich jetzt sagen das das QT_OpenGL_mit_GUI grösser ist als das GLWidget damit ich rechts oder so noch paar steuerelemente wie buttons usw unterbringe? im mom verschlingt das GLWidget den ganzen platz;/ ein

Code: Alles auswählen

w.resize(1024, 768);
hift ja auch nicht wirklich!!!

und wo kommt das delete gl hin? vor return a.exec(); oder?

cu
john_Ohlsen
Beiträge: 13
Registriert: 19. Januar 2006 16:57
Wohnort: München

Beitrag von john_Ohlsen »

-> und wo kommt das delete gl hin? vor return a.exec(); oder?

Das geht nicht, da der Pointer gl gelöscht werden würde, bevor die Applikation (a.exec()) gestartet wird. In dem Fall ist es egal; der Speicherleck wird nach Beendigung behoben.
Wenn Du es richtig machen willst, dann z.B. per Autopointer oder Du gibst a.exec() den Pointer bekannt und führst dort das delete durch.
Antworten