naja der Titel muesste eigentlich heissen, warum compeliert er nicht mehr wenn ich den Slot haben will...
Also ich habe folgendes:
Code: Alles auswählen
testapp : QMainwindow
myWidget : QWidget
Add : myWidget
Sub : myWidget
Code: Alles auswählen
virtual void calculate_add();
Code: Alles auswählen
void Add::calculate_add(){
qDebug() << "calling method calculate_add";
app->c1 -> setText("add");
return;
}
Code: Alles auswählen
connect(add,SIGNAL (clicked()), this, SLOT(addWidget -> calculate_add()));
Code: Alles auswählen
g++ -o testapp Add.o main.o mywidget.o Sub.o testapp.o moc_testapp.o -L/usr/lib -L/usr/lib -L/usr/src/packages/BUILD/qt-x11-opensource-src-4.0.1/lib -lQtGui -L/usr/X11R6/lib -lpng -lSM -lICE -lXi -lXrender -lXrandr -lXcursor -lXinerama -lfreetype -lfontconfig -lXext -lX11 -lm -lQtCore -lz -ldl -lpthread
moc_testapp.o:(.gnu.linkonce.r._ZTV7testapp[vtable for testapp]+0xe4): undefined reference to `testapp::calculate_add()'
collect2: ld returned 1 exit status
make: *** [testapp] Error 1
Funktion calculate_app() als virtual deklariert damit sich zur Laufzeit das System die passende Funktion sucht.
Da das connect Statement im Konstruktor von testapp sein muss (da hier das ui File eingebunden wird) muss der Prototyp also im testapp.h File stehen.
Die Funktion calculate_add() gehoert zur Klasse Add, fuer die Klasse Add habe ich ein Objekt addWidget angelegt. Von diesem Objekt moechte ich jetzt die Funktion calculate_add() rufen also addWidget -> calculate_add().
Tja da der Compiler meckert, ist da wohl was falsch in meinem Gedankengang. Die Fehlermeldung besagt ja noch dass er kein testapp::calculate_add() finden kann, genau das will ich ja nicht mehr haben, aber wie sag ich es ihm? Oder besser warum ignoriert er mein "addWidget ->"
Bin mir sicher, dass mir jemand von euch einen Hinweis geben kann.
Der komplette Sourcecode ist angehangen.
Danke,
J.