0 in geometry().height() nach konstruktor ???

Alles rund um die Programmierung mit Qt
Antworten
AlexanderKiebler82
Beiträge: 20
Registriert: 4. Juni 2009 12:19
Kontaktdaten:

0 in geometry().height() nach konstruktor ???

Beitrag von AlexanderKiebler82 »

Hi,=)
Habe folgendes Problem:
Habe eine Klasse on QMainWindow abgeleitet
diese bekommt im Konstruktor
-menuBar();
-ein resize();
-diverse Splitter
-statusBar();
-und dann ein QApplication::postEvent(this,new QEvent(QEvent::Resize));

Dabei habe ich das resizeEvent neu implementiert:

Code: Alles auswählen

void BorderModellQT::resizeEvent(QResizeEvent *event)
{
    //set the window_height
    ViewModellingGL.at(0)->win_height=geometry().height()-statusBar()->height()-this->geometry().y();
    QMessageBox msg;
    msg.setText(tr("win_height %1  \t geometry().height()=%2").arg( ViewModellingGL.at(0)->win_height).arg(geometry().height()));
    msg.exec();
}
Leider ist nach der ausführung des konstruktors
geometry().height()
immer gleich null. Erst wenn ich per Mausklick ein resizeEvent aufrufe, bekommt geometry().height() den richtigen wert.
Wie kann ich das Ändern ?? Oder gibt es ein event, weches ich aufrufen muß, damit geometry().height() den richtigen wert bekommt??
Gruß Alex
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Im Konstruktor ist die Größe immer 0. Nach dem Konstruktor kommt immer erst das Polish-Event, dort könnte die Größe schon drinn stehen, und als nächstes das Show-Event, dort sollte sie auf jeden Fall schon drinn stehen, mit dem Unterschied, daß das show-Event öfters kommen kann...
AlexanderKiebler82
Beiträge: 20
Registriert: 4. Juni 2009 12:19
Kontaktdaten:

re

Beitrag von AlexanderKiebler82 »

Hi,
Danke für die Antwort.
habe mich leider verschrieben geometry().height() ist garnicht das Problem, sondern
this->geometry().y()
Das ist leider auch im show event noch nicht richtig gesetzt.
Gruß Alex
Antworten