Seite 1 von 1

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

Verfasst: 18. Juni 2009 11:40
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

Verfasst: 18. Juni 2009 13:05
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...

re

Verfasst: 18. Juni 2009 13:48
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