Seite 1 von 1

QCustomEvent -> QEvent

Verfasst: 2. Juli 2006 11:57
von freeskydiver
Hallöschen ;)
ich hab mir jetzt ein paar samples organisiert ein nettes büchlein ;)
Ok das basiert auf Qt3 ist eigentlich Ok für das Grundverständnis ...
Obiges Problem
im Beispiel wird mit QCustomEvent gearbeitet
ich setze mit Qt4 natüerlich QEvent ein
das funktioniert auch gut ...nur ist die übergabe von
daten ganz weggefallen??
also setData ...
das würde bedeuten ich müsste die übergabe eventbezogener objecte oder daten komplett selbsverwalten?? ...
Das würde ja ein super Feature des QCustomEvents einfach wegfallen lassen?!?!?
ich der Doku steht das dies jetzt in einer für die Application günsten Variante gemacht werden muss ;) nett ;)

ich hab doch bestimmt was überlesen ...
wie macht ihr Qt Profis das? ;)

Verfasst: 2. Juli 2006 13:21
von Christian81
Und warumnimmst du nicht auch in Qt4 QCustomEvent?

Verfasst: 2. Juli 2006 13:31
von freeskydiver
Christian81 hat geschrieben:Und warumnimmst du nicht auch in Qt4 QCustomEvent?
weil mir das der Compiler angemeckert hat?!

Verfasst: 2. Juli 2006 14:33
von upsala
Hat er das? Warum verschweigst du dann die Fehlermeldung?

Ansonsten wird ja für Qt4 QEvent empfohlen, dann nimm es auch her, so schwer ist das nicht...

Verfasst: 3. Juli 2006 06:53
von Christian81
Stimmt, hast recht - habe übersehen dass es nur qt3support ist.

Verfasst: 3. Juli 2006 16:53
von freeskydiver
upsala hat geschrieben:Hat er das? Warum verschweigst du dann die Fehlermeldung?

Ansonsten wird ja für Qt4 QEvent empfohlen, dann nimm es auch her, so schwer ist das nicht...
nein der Event nicht ...nur kann ich damit keinen pointer auf ein Object mehr mitschicken wie es in dem QCustomEvent mit setData der fall war...
Oder täusche ich mich hier ...wie gesagt bin anfänger in Qt und hab meine Infos bisher nur vom "rumtesten" ...2..3 Tage ;)

Verfasst: 3. Juli 2006 19:34
von upsala

Code: Alles auswählen

class CustomEvent : public QEvent
{
 public:
  CustomEvent(QObject *o=0) : QEvent(QEvent::User), m_obj(o) {};
  
  void setObject(QObject *o) { m_obj=o; };
  QObject object() const { return m_obj; };

private:
  QObject *m_obj;
}

Verfasst: 4. Juli 2006 09:12
von freeskydiver
upsala hat geschrieben:

Code: Alles auswählen

class CustomEvent : public QEvent
{
 public:
  CustomEvent(QObject *o=0) : QEvent(QEvent::User), m_obj(o) {};
  
  void setObject(QObject *o) { m_obj=o; };
  QObject object() const { return m_obj; };

private:
  QObject *m_obj;
}
Danke für deine nette Klasse ...;)
aber das heist ich habe es wirklich richtig gelesen ....die übergabe von objecten im QEvent ist weggefallen? und man sollte es "wieder" selber machen?
Weil ein object "eigentlich" nicht zu einem Event gehört ...und nur ein nice to have ist?

Verfasst: 4. Juli 2006 17:42
von upsala
Es wurden ja eigentlich auch keine Objecte übergeben sondern nur Zeiger darauf. Und angenommen du wolltest nur ein QPoint übergeben mußtest du erst mal mit new den Zeiger darauf erzeugen und dann auch noch darauf achten, daß du später dein delete nicht vergisst. Oder du hast die Klasse gleich abgeleitet, so wie es auch in der Qt3-Doku steht, dann bist du genau soweit wie jetzt.

Verfasst: 5. Juli 2006 09:08
von freeskydiver
upsala hat geschrieben:....
Oder du hast die Klasse gleich abgeleitet, so wie es auch in der Qt3-Doku steht, dann bist du genau soweit wie jetzt.
Ja ok ...ich seh's ein ;) ist wohl richtig.