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

Qt Programmierung, QML, Qt-Plattformen
Antworten
wellnestom
Beiträge: 30
Registriert: Fr Nov 09, 2012 10:29 am

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

Beitrag von wellnestom » Do Nov 15, 2012 6:49 pm

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

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

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

Beitrag von cloidnerux » Do Nov 15, 2012 7:06 pm

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.
Redundanz macht wiederholen unnötig.
quod erat expectandum

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

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

Beitrag von nufan » Fr Nov 16, 2012 1:27 pm

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.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

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

Beitrag von Xin » So Nov 18, 2012 11:57 am

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

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

Beitrag von nufan » So Nov 18, 2012 12:47 pm

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.

Antworten