Seite 1 von 1

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

Verfasst: 6. Juli 2006 02:41
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

Verfasst: 6. Juli 2006 02:53
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

Verfasst: 6. Juli 2006 23:00
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.