Seite 1 von 1

Anfänger Problem

Verfasst: 14. Juli 2008 00:01
von pucky
Hallo zusammen,
ich bin gerade dabei mich in Qt einzuarbeiten.
Ich arbeite gerade das Tutorial von Qt durch genauer gesagt Kapitel 5
http://doc.trolltech.com/4.2/tutorial-t5.html
Hier wird angeregt Buttons zu erzeugen, die das QLCD-Display ansprechen.
Also ich erzeuge einen Button mit der Aufschrift "5" und wenn ich diese drücke wechselt das QLCD zu 5.
Leider habe ich kein geeignetes Signal oder Slot gefunden, mit dem man das realisieren kann. Sollte doch ganz einfach sein, wenn es so weit vorne im Tutorial steht?

Grüsse Pucky

Verfasst: 14. Juli 2008 13:21
von Volker
Ich weiß nicht was du unter "geeignet" verstehst. Naheliegend find ich es nicht unbedingt, dass ein Button ein Signal(int) zur Verfügung stellt, welches den Wert des Button Texts enthält. Wenn Du sowas brauchst, müsstest Du eine eigene Button Klasse von QPushButton ableiten. Oder Du verwendest das clicked() Signal, verbindest es mit einem Slot deines Programms, welches den QLCD Wert auf 5 oder button->text().toInt() setzt.

Verfasst: 14. Juli 2008 17:28
von Sephral
Ein QSignalMapper wäre auch ne Möglichkeit, einfach dem Button ein Integer zuweisen und dann QSignalmapper -> mapped(int) mit QLCDNumber -> display(int) verbinden.

Es gibt viele mögliche Lösungen :-)


EDIT: Oder ein eigener Slot der über die sender()-Funktion den Button auflöst und dann button->text() dem LCD-Display unterschiebt.

Verfasst: 14. Juli 2008 17:31
von upsala
Oder du verwendest den QSignalMapper.

Re: Anfänger Problem

Verfasst: 14. Juli 2008 23:53
von Thorsten
pucky hat geschrieben: Hier wird angeregt Buttons zu erzeugen, die das QLCD-Display ansprechen.
Also ich erzeuge einen Button mit der Aufschrift "5" und wenn ich diese drücke wechselt das QLCD zu 5.
Ich glaube du solltest dir die Aufgabe nochmal anschauen. Die Antworten sind zwar alle für deine Wünsche richtig, doch ist im Tutorial was anderes gemeint.

Du verbindest einfach QAbstractButton::clicked() mit QLCDNumber::setHexMode () und das war es. Mehr war da wohl nicht angedacht.

Gruß
Thorsten