QPushButton -> und dann per Slot Variable definieren?

Alles rund um die Programmierung mit Qt
Antworten
andi7
Beiträge: 11
Registriert: 18. August 2009 15:03

QPushButton -> und dann per Slot Variable definieren?

Beitrag von andi7 »

Ich habe gerade erst angefangen mit Qt und wollte fragen, wie man einer Variable einen Wert zuweisen kann beim klicken auf einen Button im Programm.

(Z.B. : Signal : QPushbutton clicked() -> Slot : x=4)

(Wenn möglich könntet ihr gerade den Code hinschreiben, anstatt auf Dokumentationen zu verweisen, aber bin eig. über jede Hilfe erfreut)
sven-kt
Beiträge: 20
Registriert: 11. Mai 2009 13:07
Wohnort: Franken

Beitrag von sven-kt »

Wenn du den Creator benutzt, kannst du dort mit Rechtsklick auf den Button 'Slot anzeigen' auswählen.
In der nächsten Auswahl steht clicked() für Button gedrückt.
Qt 4.5, Windows Vista, Kubuntu
andi7
Beiträge: 11
Registriert: 18. August 2009 15:03

Beitrag von andi7 »

@sven-kt: Ich weiss schon wie man ein Button erstellt, aber ich weiss nicht wie man eine Variable per Slot definieren kan:
QObject::connect( Button, SIGNAL( clicked() ), ???, SLOT( ????) ));

Wie kann ich hier eine Variable definieren?
Strahlex
Beiträge: 158
Registriert: 23. Dezember 2008 15:49
Wohnort: Österreich

Beitrag von Strahlex »

andi7
Beiträge: 11
Registriert: 18. August 2009 15:03

Beitrag von andi7 »

@Strahlex: Und wo siehst du hier die Definition einer Variable, bzw. könntest du es hierhin kopieren?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Ein SLOT eist ein Stinknormale Memberfunktion deiner Klasse.
Wenn du weißt, wie man Variablen mit Klassenmethoden ändert, weißt du wie das im SLOT funktioniert.
Ist also eher C++-Grundlagen als ein SIGNAL-SLOT-Problem.
Strahlex
Beiträge: 158
Registriert: 23. Dezember 2008 15:49
Wohnort: Österreich

Beitrag von Strahlex »

Lies dir doch einfach das Kapitel Signal and Slots in der Doku durch...

Am besten für einen Einsteiger wäre es aber sich ein Buch zuzulegen oder die Tutorials durchzuarbeiten...
Antworten