Seite 1 von 1
Event nach create?
Verfasst: 12. September 2008 14:51
von AuE
Hi @ all,
ich bin gerade auf der suche nach einem passenden Event, welches möglichst nur einmal auftritt und das direkt nach dem Paint des Widgets.
Folgender Hintergrund:
Ich habe eine Klasse getippt die einen ACE Thread startet, welcher zyklisch einige Bearbeitungen ausführt.
Diesen möchte ich jedoch nicht im Konstruktor starten sondern direkt danach. Ich hatte da an das create Event des QWidgets gedacht... also hab ich die Methode überpinselt-wird allerdings nie aufgerufen. Das close Event und diverse andere kann ich problemlos abfangen, nur das net...
Hat jemand von euch eine Idee oder einen Vorschlag?
Grüße!
Verfasst: 12. September 2008 15:05
von Christian81
showEvent() ?
Oder einen QTimer wenn Du keine Events abfangen willst.
Verfasst: 12. September 2008 15:10
von AuE
wird show nicht auch bei minimieren/maximieren wieder mit aufgerufen?!
das Problem ist nicht das ich keine Events abfangen möchte, sondern das es nicht das passende gibt
Was ich brauche ist ein Event was mir sagt: Alle Elemente wurden erstellt, Konstruktor erfolgreich durchlaufen, nun kanns los gehen.
Ich sehe in allen Qt Sachen (Büchern, Doks) immer nur das dort quasi fast alle Sachen im c´tor gemacht werden-finde das aber eher unschön... weil was wird aus den Exceptions???
Verfasst: 12. September 2008 16:07
von upsala
polish-Event
Verfasst: 13. September 2008 15:46
von FaS
Ich mach das immer so, event loop vorausgesetzt:
Code: Alles auswählen
// Am Ende meines Konstruktors:
QTimer::singleShot( 0, this, SLOT(initializationSlot()) );
Angenommen, es gäbe ein Create-Event. Welcher Geist in den Qt-Klassen ruft diesen auf??? Technisch gesehen geht das nur während sich die Klasse im Konstruktor befindet oder potenziell befinden könnte, oder über den event loop. Ich hoffe ich erzähle keinen Mist

MfG,
FaS
Verfasst: 15. September 2008 07:26
von AuE
Jau das wäre das einzigst brauchbare denke ich mit dem Timer.
Naja ich hätte an eine Win Message gedacht. Die bekommt ja jedes erstellte Fenster. Nur glaube ich nicht das Qt dafür einen Event auslöst.
Verfasst: 15. September 2008 09:04
von upsala
Was gefällt dir am polish-Event nicht?
Verfasst: 15. September 2008 09:10
von AuE
das es nicht ausgelöst wird
kanns zwar in meinen QMainWindow implementieren(überschreiben) aber er kommt leider net rein.... sonst wäre es lt. doku zumindest perfetto

Verfasst: 15. September 2008 12:15
von upsala
Welche Funktion willst du da überschreiben? Da gibt es keine...
Verfasst: 15. September 2008 13:28
von AuE
void QGraphicsWidget::polishEvent () [virtual protected]
This event is delivered to the item by the scene at some point after it has been constructed, but before it is shown or otherwise accessed through the scene. You can use this event handler to do last-minute initializations of the widget which require the item to be fully constructed.
The base implementation does nothing.
Das sagt mir die Doku -> also falls du dieses event meintest dann muss ich doch in meiner Klasse dieses event überschreiben wie man es auch beim closeEvent macht, oder stehe ich grade derbe auf dem schlauch?