Seite 1 von 1

Qt: SIGNAL(valueChanged(int)) für 'normale' Variablen?

Verfasst: Do Nov 15, 2012 6:49 pm
von wellnestom
Hi,
ist es irgendwie möglich eine Methode in einer Qt Klasse auszuführen sobald sich der Inhalt in einer Variablen ändert?
Also das gleiche Prinzip wie es auch mit dem connect Signal z.B. einem Slider geht?
Bekomme ab und an neue Werte in ein Array und würde gern einen Zeiger mit an das Qt Objekt übergeben. Dieses soll dann, sobald sich der Inhalt des Arrays ändert, auch entsprechende Meldungen ausgeben.

Gruß Tom

Re: Qt: SIGNAL(valueChanged(int)) für 'normale' Variablen?

Verfasst: Do Nov 15, 2012 7:06 pm
von cloidnerux
Dieses soll dann, sobald sich der Inhalt des Arrays ändert, auch entsprechende Meldungen ausgeben.
Ich kenne keine direkte Möglichkeit, aber ich denke eine getter/setter Funktion ist die Lösung. Also statt direkt auf die Variablen/Array zuzugreifen hast du eine Funktion, der du die Werte übergibst und diese Funktion kann dann alles weitere einleiten.

Re: Qt: SIGNAL(valueChanged(int)) für 'normale' Variablen?

Verfasst: Fr Nov 16, 2012 1:27 pm
von nufan
Wie cloidnerux schon angedeutet hat, implementierst du dir deinen Array am besten als Objekt selbst. Dabei leitest du von QObject ab und bietest Methoden bzw. Operatoren an, die die entsprechenden Signale auslösen. Oder du leitest protected von einem Container (z.B. QVector) ab und überschreibst jene Methoden, die du öffentlich haben willst.

Re: Qt: SIGNAL(valueChanged(int)) für 'normale' Variablen?

Verfasst: So Nov 18, 2012 11:57 am
von Xin
Was spricht gegen ein Template, dass den entsprechenden Datentyp kapselt und automatisch Getter und Setter anbietet.

Womit direkt die Frage folgt, ob es das schon gibt. Und falls ja, könnte ich mir gut vorstellen, dass es bereits einfache Ableitungen gibt wie QInt.

Re: Qt: SIGNAL(valueChanged(int)) für 'normale' Variablen?

Verfasst: So Nov 18, 2012 12:47 pm
von nufan
Xin hat geschrieben:Was spricht gegen ein Template, dass den entsprechenden Datentyp kapselt und automatisch Getter und Setter anbietet.
http://www.proggen.org/doku.php?id=fram ... _und_slots
Siehe die letzten 2 Sätze auf der Seite.
Xin hat geschrieben:Womit direkt die Frage folgt, ob es das schon gibt. Und falls ja, könnte ich mir gut vorstellen, dass es bereits einfache Ableitungen gibt wie QInt.
qint gibt es in anderer Form:
http://qt-project.org/doc/qt-4.8/qtglobal.html
Es gibt "verschiedene" qints, die die angegebene Größe auf jedem System garantieren.