2009-08-13 4 views
0

Meine "EditorView" (ein QGLWidget) wird zweimal geändert, wenn es erstellt wird. Es beginnt bei etwa 846 x 630 und schrumpft dann auf 846 x 607 (Verlust von 23 Pixel Höhe). Erstellt wie folgt aus:Qt Widget wird bei der Initialisierung zweimal skaliert?

EditorWindow::EditorWindow() { 
    Q_INIT_RESOURCE(icons); 

    readSettings(); 

    setWindowTitle("Q2D Map Editor"); 

    createActions(); 
    createMenus(); 
    createToolBars(); 
    createStatusBar(); 

    editorView = new EditorView; 
    setCentralWidget(editorView); 
} 

Und dann automatisch diese zweimal aufgerufen wird:

void EditorView::resizeGL(int w, int h) { 
    printf("%d x %d\n", w, h); 
    glViewport(0, 0, w, h); 
    updateView(); 
} 

ich 23 Pixel über die Größe der Statusleiste, aber die Statusleiste sollte bereits vor der vorhanden sein, zentrales Widget wird initialisiert, nein? Oder ist es aus irgendeinem Grund verspätet?


Aufrufhierarchie 1

http://img259.imageshack.us/img259/8881/callstack1.png

Aufrufhierarchie 2

http://img259.imageshack.us/img259/2200/callstack2.png

Antwort

3

Sie sollten einen Haltepunkt in dem resizeGL Verfahren eingestellt, und die Aufrufliste überprüfen, um zu sehen, in beide Fälle, was war der Grund für den Aufruf von resizeGL. Von Code, den Sie zur Verfügung gestellt haben, ist es nicht offensichtlich.

+1

Ja ... es sieht so aus, als ob das Layout nicht initialisiert wurde (siehe Screenies). Nun, das ist einfach dumm. Naja ... es ist kein großes Problem. Bedeutet nur, dass meine Grafiken nicht zentriert sind. – mpen

Verwandte Themen