signal/slot connect Problem

Alles rund um die Programmierung mit Qt
noirabys
Beiträge: 16
Registriert: 25. Januar 2006 07:33
Wohnort: Aachen
Kontaktdaten:

signal/slot connect Problem

Beitrag von noirabys »

Hallo !
in meinem Programm benutze ich signal/slots
und verbinde sie mittels connect .
Soweit so gut, das ganze kompiliert allerdings auch
wenn die methoden sprich signal und slots gar nicht existieren !?

d.h. schreibe ich Blödsinn rein:
QObject::connect(m,SIGNAL(upda(QColor)),this,SLOT());
compiliert & linkt es,aber funktioniert natürlich nicht.

die moc files sehen ok aus , das object in dem das connect steht wird auch neu gebaut .

g++ -c -O2 -O2 -Wall -frtti -fexceptions -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_EDITION=QT_EDITION_DESKTOP -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NEEDS_QMAIN -I"D:/qt/include/QtGui" -I"D:/qt/includ
e/QtCore" -I"D:/qt/include" -I"D:/qt/include/ActiveQt"
-I"tmp\moc\release_shared" -I"." -I"D:/qt/mkspecs/win32-g++"
-o tmp\obj\release_shared\dactest.o dactest.cpp

g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-s -Wl,-subsystem,windows -o "release\dactest.exe" tmp\obj\release_shared\dactest.o tmp\obj\release_shared\main.o tmp\obj\
release_shared\mythread.o tmp\obj\release_shared\moc_dactest.o tmp\obj\release_shared\moc_neuesqlineedit.o tmp\obj\release_shared\moc_rating_label.o tmp\obj
\release_shared\moc_mythread.o tmp\obj\release_shared\qrc_dac.o -L"D:\qt\lib" -L"D:\qt\lib" -lmingw32 -lqtmain -lQtCore4 -lQtGui4

langsam verweifel ich !!!
Wer hat eine Idee , was übersehe ich bei der ganzen Geschichte.
Wenn die Informationen nicht ausreichen kann ich gerne noch mehr schreiben !

Vielen Dank im Voraus
Grüße
noirabys
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Es ist klar dass dies funktioniert da dies erst während der Laufzeit geprüft wird.
Allerdings wird bei einem fehlerhaften connect zur Laufzeit eine warnung auf der Konsole ausgegeben.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
noirabys
Beiträge: 16
Registriert: 25. Januar 2006 07:33
Wohnort: Aachen
Kontaktdaten:

Fehlermeldung ?

Beitrag von noirabys »

Danke für die Antwort !
eine Fehlermeldung erhalte ich aber leider nicht !?
Was muß man tun um diese zu erhalten ? ist es dabei egal ob Debug oder Release version ? Bei mir funktioniert es in beiden nicht !

Viele Grüße
noirabys
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Unter windows muss noch
CONFIG += console (siehe http://doc.trolltech.com/4.2/qmake-vari ... tml#config) in der pro-Datei stehen.
Habe übersehen das es Windows ist.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Normal zeigt er aber alles was er auf die error console schreibt, auch in das debug ausgabefenster rein (wenn im debug modus bist klar ^^) ....

Welche IDE benutzt du ?

Ciao ...
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Man muss aber auch gegen die Qt-Debug-Libs verlinken. Ist mir im Eifer des Gefechts auch schon mal passiert. Ein einfaches d vergessen und schon bekommt man keine Meldungen mehr, das ein connect nicht erfolgreich war.
noirabys
Beiträge: 16
Registriert: 25. Januar 2006 07:33
Wohnort: Aachen
Kontaktdaten:

debug flags ...

Beitrag von noirabys »

Also "ide" benutze ich keine ...

fehlt denn was bei den Compiler -flags ?

g++ -c -g -g -Wall -frtti -fexceptions -DUNICODE -DQT_LARGEFILE_SUPPORT
-DQT_EDITION=QT_EDITION_DESKTOP -DQT_THREAD_SUPPORT -DQT_DLL -DQT_CORE_LIB -DQT_
GUI_LIB -DQT_NEEDS_QMAIN -I"D:/qt/include/QtGui" -I"D:/qt/include/QtCore" -I"D:/
qt/include" -I"D:/qt/include/ActiveQt" -I"tmp\moc\debug_shared" -I"." -I"D:/qt/m
kspecs/win32-g++" -o tmp\obj\debug_shared\main.o main.cpp
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-ena
ble-runtime-pseudo-reloc -Wl,-subsystem,windows -o "debug\dactest.exe" tmp\obj\d
ebug_shared\dactest.o tmp\obj\debug_shared\main.o tmp\obj\debug_shared\mythrea
d.o tmp\obj\debug_shared\moc_dactest.o tmp\obj\debug_shared\moc_neuesqlineedit
.o tmp\obj\debug_shared\moc_rating_label.o tmp\obj\debug_shared\moc_mythread.o
tmp\obj\debug_shared\qrc_dac.o -L"D:\qt\lib" -L"D:\qt\lib" -lmingw32 -lqtmain
d -lQtCored4 -lQtGuid4

Vielen dank und grüße
noirabys
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Hast Du es überhaupt schonmal mit der config-Option ausprobiert??
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
noirabys
Beiträge: 16
Registriert: 25. Januar 2006 07:33
Wohnort: Aachen
Kontaktdaten:

Beitrag von noirabys »

Hallo !
hab deine Antwort übersehen , werde es direkt montag ausprobieren

vielen dank !!!
noirabys
Undefined
Beiträge: 34
Registriert: 19. Oktober 2006 17:12

Re: signal/slot connect Problem

Beitrag von Undefined »

noirabys hat geschrieben:Hallo !
d.h. schreibe ich Blödsinn rein:
QObject::connect(m,SIGNAL(upda(QColor)),this,SLOT());
compiliert & linkt es,aber funktioniert natürlich nicht.
Du brauchst an der*. pro gar nichts zu machen weil QOBJECT Bestandteil von QtCore ist.
Mal anders gefragt was hast du den nun wirklich in der Klasse stehen das da oben doch Hoffentlich nicht - oder?
Ist die Klasse von QOBJECT abgeleitet ?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: signal/slot connect Problem

Beitrag von Christian81 »

Undefined hat geschrieben: Du brauchst an der*. pro gar nichts zu machen weil QOBJECT Bestandteil von QtCore ist.
Das erklär mir mal genauer... was hat das eine mit dem anderen zu tun?
Undefined hat geschrieben: Mal anders gefragt was hast du den nun wirklich in der Klasse stehen das da oben doch Hoffentlich nicht - oder?
Es ist egal was dort steht - das wichtige ist dass es kompiliert und zur Laufzeit einen Fehler ausgibt...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
noirabys
Beiträge: 16
Registriert: 25. Januar 2006 07:33
Wohnort: Aachen
Kontaktdaten:

Beitrag von noirabys »

also mit CONFIG += console klappt es in der Debug Version !
Als Fehler spuckte er mir dann aus
QObject::connect: Cannot queue arguments of type QColor , hab es
nun in die rgb Werte als int abgewandelt nun geht es !

Vielen Dank !

...bleibt nur noch die Frage offen warum QColor nicht als parameter genommen werden kann ?!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

noirabys hat geschrieben: ...bleibt nur noch die Frage offen warum QColor nicht als parameter genommen werden kann ?!
Weil es kein Signal und/oder Slot gibt welches das verarbeiten kann.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
M@g!ndo$ch
Beiträge: 70
Registriert: 7. Januar 2007 14:56

Beitrag von M@g!ndo$ch »

Hi,

ich entwickle mit Visual Studio 2005. Wie kann ich da einstellen, dass die Warnungen zur Laufzeit ausgegeben werden? Ich hab da ja keine .pro-Datei oder zumindest habe ich keine gefunden. Und im Output-Fenster von VS ist nichts zu sehen :-(

mfg M@g
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Als Konsolenanwendung kompilieren - dann kommt noch ein DOS-Fenster mit den debugausgaben. Irgendwo in den Linkereinstellungen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten