Seite 1 von 1

Signal Slot

Verfasst: 22. Januar 2010 11:30
von Mido
Hallo ,

ich muss ein Applikation mit Qt Designer erstellen .

mein Problem ist : wie kann ich Signals und Slots selber programmieren , weil im Qt Designer

stehen nur bestimmte Funktionen zur Verfügung . d.h wie kann meine eigene Methode

einfügen.

ich bin hilflos !

Verfasst: 22. Januar 2010 11:53
von drizzt
in deine klasse das macro Q_OBJECT schreiben und dann:

z.b.
signals:
void mySignal(int);
...

public slots:
void mySlot(QString s);

aber vllt doch mal die qt hilfe lesen? :-)

Verfasst: 22. Januar 2010 12:40
von marvel
der mechannismus ist gänzlich einfach. du hast zu jedem objekt vordefinierte SIGNALS und SLOTS. diese kannst du unter Der Dokumentation http://doc.trolltech.com/4.6/index.html nachschauen, indem du die passende klasse des objektes nimmst. sollten diese deinen bedarf einmal nicht abdecken kann man auch eigene SIGNALS und SLOTS definieren. eine gute beschreibung findest du unter http://doc.trolltech.com/4.6/signalsandslots.html.

solltest du dennoch fragen haben, stehe ich dir zur verfügung :)

Verfasst: 25. Januar 2010 15:17
von Mido
ja das funktioniert bei mir immer noch nicht , auch wenn die Hilfe gelesen habe , das bringt mich nicht weiter

ich will ein kleines Beispiel erst Mal schreiben und zwar :

ein Button und ein TextEdit , und wenn die Taste drücke scheint daneben im Text :Taste wird gedrückt

wie mache ich das ?

danke

Verfasst: 25. Januar 2010 17:10
von odenter
Der Knof hat ein Signal (clicked) für Knopf gedrückt. An das Signal hängst Du eine Methode in der Du den Text des textEdit Widgets setzt.

Also in die Deklaration deiner Fenster-Klasse eine Methode:

Code: Alles auswählen

public slots:
  void OnButtonPressed() {
    textEdit->setText("lalalala");
  }

Und im Konstruktor

Code: Alles auswählen

  connect(ui->button, SIGNAL(clicked()), this, SLOT(OnButtonPressed));

Verfasst: 25. Januar 2010 19:45
von upsala
Arbeite doch mal die Tutorials durch: http://doc.trolltech.com/4.6/tutorials.html

Verfasst: 26. Januar 2010 18:16
von Mido
hallo zusammen

ich weiss nicht warum beim Ausführen kommt ein Fehlermeldung:

Segmentation fault

mein Programm lässt sich Fehlerfrei compilieren ,

Note: ich nehme mal QtCreator als Editor

bitte schaut ihr im meine anhängende Quellcode !

ich wird sehr dankbar für eure Hilfe

Verfasst: 26. Januar 2010 18:27
von upsala
Fehlt das nicht was?
Schon mal was von einem Debugger gehört?

Verfasst: 26. Januar 2010 19:16
von Mido
Ja hier ist mein main Funktion :

#include <QtGui/QApplication>
#include "mywidget.h"


int main(int argc, char *argv[])
{

QApplication a(argc, argv);
MyWidget w;
w.show();
return a.exec();

}

aber trotzdem kein Reaktion !!!!!!!!

Verfasst: 26. Januar 2010 19:42
von upsala
Schon mal was von einem Debugger gehört? Mit wem connectest du eigentlich?