[gelöst] Welches Event, wenn Widget/Dialog angezeigt wird?

Alles rund um die Programmierung mit Qt
Antworten
strangerthandreams
Beiträge: 3
Registriert: 20. September 2012 13:28

[gelöst] Welches Event, wenn Widget/Dialog angezeigt wird?

Beitrag von strangerthandreams »

Hiho.

Ich steige gerade in die plattformübergreifende Entwicklung mit Qt ein. Mein Problem ist, dass ich heute lange nach einem Event gesucht habe, was es so offensichtlich nicht gibt.

Nehmen wir mal an, dass ein Dialog beispielsweise komplett gebaut und einsatzbereit ist und dann zur Anzeige gebracht wird als modaler Dialog meinetwegen mit dlgGeilesTeil::exec(). Ich bräuchte ein Event was mir dann mitteilt, dass der Dialog nun sichtbar ist und damit etwas gemacht werden kann.

Das Event showEvent() abzufangen bringt nichts, da es immer dann aufgerufen wird, bevor ein Fenster angezeigt wird. Das ist mir aber zu früh. Ich will etwas automatisiert starten, aber erst dann wenn der Dialog sichtbat ist.

Nun könnte man einen QTimer mit

Code: Alles auswählen

QTimer::singleShot(...)
im Konstruktor nehmen, aber das ist doch nicht gerade schön.

Ich habe auch durch stundenlanges befragen der weltgrößten Suchmaschine nichts dazu finden können. Bei C#/.net gab es immer zwei Events .show und .shown wenn ich mich jetzt irre. So etwas ähnliches muss es hier doch auch geben. Oder wie macht ihr das denn, wenn man eine Art Popup zeigen will, indem ein paar Statusmeldungen die dynamisch generiert und angezeigt werden sollen?
Zuletzt geändert von strangerthandreams am 21. September 2012 11:26, insgesamt 1-mal geändert.
Feuer
Beiträge: 20
Registriert: 19. April 2011 08:08

Re: Welches Event, wenn Widget/Dialog angezeigt wird?

Beitrag von Feuer »

Hallo,

du musst einfach setVisible überschreiben:

Code: Alles auswählen

void MainWindow::setVisible(bool visible)
{
    QWidget::setVisible(visible);
    if(visible)
        QMessageBox::information(this,"sichtbar","sichtbar", QMessageBox::Ok);
}
siehe hier:
- http://doc.qt.digia.com/4.7/qwidget.html#visible-prop
- http://doc.qt.digia.com/4.7/qwidget.html#showEvent

Gruß
Zuletzt geändert von Feuer am 21. September 2012 17:30, insgesamt 1-mal geändert.
strangerthandreams
Beiträge: 3
Registriert: 20. September 2012 13:28

Re: Welches Event, wenn Widget/Dialog angezeigt wird?

Beitrag von strangerthandreams »

OK Super, vielen Dank. Läuft... :)
Antworten