Event nach create?

Verschiedenes zu Qt
Antworten
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Event nach create?

Beitrag 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!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

showEvent() ?
Oder einen QTimer wenn Du keine Events abfangen willst.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag 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???
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

polish-Event
FaS
Beiträge: 184
Registriert: 25. Mai 2006 19:48
Kontaktdaten:

Beitrag 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
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag 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.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Was gefällt dir am polish-Event nicht?
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag 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 ;-)
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Welche Funktion willst du da überschreiben? Da gibt es keine...
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag 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?
Antworten