Hallo liebe Leser, helft mir mal bitte.
Ich habe MS Visual Studio 2005 installiert und Qt4.2.2.
Wenn ich mein Projekt ,aus VS 2005 heraus,kompiliere dann macht er das auch brav und baut aus der *.ui vom Designer mein Programm.
Wenn ich dann in der MenuLeiste auf einen Eintrag klicke, dann wird anscheinend keine Action ausgelöst. Auf jeden Fall gehen die Signal/Slots nicht, obwohl sie richtig konfiguriert sind.
Sooo, wenn ich das ganze von der Command Line mache mit
qmake...
nmake...
Dann geht alles.
Wo denkt ihr hängts ? Irgendwas mit dem MOC ?
Was kann ich hier posten, damit ihr besseren Einblick habt?
Gruß Ben
VS2005 -> signal / slots funktionieren nicht
Re: VS2005 -> signal / slots funktionieren nicht
An den Plenks oder am vergessenen Apostrophdeadlogg hat geschrieben:Wo denkt ihr hängts ? Irgendwas mit dem MOC ?
Nein, im Ernst, schau mal im VS, Rechtsklick auf eine Headerdatei, Eigenschaften, und dann müsste unter 'Benutzerdef. Buildschritt' was eingetragen sein, sonst wird der MOC nicht aufgerufen. Einfachste Lösung, da Du mit der Kommandozeile schon arbeitest, qmake -tp vc myProfile.pro.
Danke, aber...
Danke für die Antwort,
mein Eintrag ist
$(QTDIR)\bin\moc.exe "$(InputPath)" -o "$(InputDir)moc_$(InputName).cpp"
Ausgabe:
$(InputDir)moc_$(InputName).cpp
Compiler meldet beim compilen:
------ Erstellen gestartet: Projekt: QtProjekt, Konfiguration: Debug Win32 ------
Performing moc on MainWindow.h
Kompilieren...
main.cpp
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4312: 'reinterpret_cast': Konvertierung von 'long' in größeren Typ 'void *'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(147) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(147) : warning C4312: 'reinterpret_cast': Konvertierung von 'long' in größeren Typ 'void *'
MainWindow.cpp
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4312: 'reinterpret_cast': Konvertierung von 'long' in größeren Typ 'void *'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(147) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(147) : warning C4312: 'reinterpret_cast': Konvertierung von 'long' in größeren Typ 'void *'
moc_MainWindow.cpp
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4312: 'reinterpret_cast': Konvertierung von 'long' in größeren Typ 'void *'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(147) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(147) : warning C4312: 'reinterpret_cast': Konvertierung von 'long' in größeren Typ 'void *'
Code wird generiert...
Verknüpfen...
Das Manifest wird eingebettet...
Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Ben\Eigene Dateien\Visual Studio 2005\Projects\QtProjekt\QtProjekt\Debug\BuildLog.htm" gespeichert.
QtProjekt - 0 Fehler, 15 Warnung(en)
========== Erstellen: 1 erfolgreich, Fehler bei 0, 0 aktuell, 0 übersprungen ==========
Noch eine Idee ?
mein Eintrag ist
$(QTDIR)\bin\moc.exe "$(InputPath)" -o "$(InputDir)moc_$(InputName).cpp"
Ausgabe:
$(InputDir)moc_$(InputName).cpp
Compiler meldet beim compilen:
------ Erstellen gestartet: Projekt: QtProjekt, Konfiguration: Debug Win32 ------
Performing moc on MainWindow.h
Kompilieren...
main.cpp
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4312: 'reinterpret_cast': Konvertierung von 'long' in größeren Typ 'void *'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(147) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(147) : warning C4312: 'reinterpret_cast': Konvertierung von 'long' in größeren Typ 'void *'
MainWindow.cpp
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4312: 'reinterpret_cast': Konvertierung von 'long' in größeren Typ 'void *'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(147) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(147) : warning C4312: 'reinterpret_cast': Konvertierung von 'long' in größeren Typ 'void *'
moc_MainWindow.cpp
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(135) : warning C4312: 'reinterpret_cast': Konvertierung von 'long' in größeren Typ 'void *'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(147) : warning C4311: 'reinterpret_cast': Zeigerverkürzung von 'void *' zu 'long'
c:\programme\qt4\src\corelib\arch\qatomic_windows.h(147) : warning C4312: 'reinterpret_cast': Konvertierung von 'long' in größeren Typ 'void *'
Code wird generiert...
Verknüpfen...
Das Manifest wird eingebettet...
Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Ben\Eigene Dateien\Visual Studio 2005\Projects\QtProjekt\QtProjekt\Debug\BuildLog.htm" gespeichert.
QtProjekt - 0 Fehler, 15 Warnung(en)
========== Erstellen: 1 erfolgreich, Fehler bei 0, 0 aktuell, 0 übersprungen ==========
Noch eine Idee ?
-
M@g!ndo$ch
- Beiträge: 70
- Registriert: 7. Januar 2007 14:56
Danke.
Also wie gesagt, wenn ichs mit qmake, nmake von der Kommandozeile mache klappts... auf der Konsole kommt kein Fehler, dass das connect nicht geklappt hätte. Also wenn ich beim connect den SLOT absichtlich auf eine falsche Funktion setzte, dann kommt eine Fehlermeldung...
hmm die moc_... zu den Sources hinzufügen.
Ich mein, dass hab ich gemacht... muss ich nochmal schauen wenn ich @home bin.
Also wie gesagt, wenn ichs mit qmake, nmake von der Kommandozeile mache klappts... auf der Konsole kommt kein Fehler, dass das connect nicht geklappt hätte. Also wenn ich beim connect den SLOT absichtlich auf eine falsche Funktion setzte, dann kommt eine Fehlermeldung...
hmm die moc_... zu den Sources hinzufügen.
Ich mein, dass hab ich gemacht... muss ich nochmal schauen wenn ich @home bin.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
die moc_*.cpp werden auf alle Fälle mit gelinkt - sonst wären da Linkerfehler zu sehen.
Was mich wundert sind die Warnungen - ist das ein 64Bit Compiler?
Ausserdem würde ich mal 'CONFIG +=console' in die pro-Datei einfügen und schauen was für Debug-Messages dort ausgegeben werden.
Was mich wundert sind die Warnungen - ist das ein 64Bit Compiler?
Ausserdem würde ich mal 'CONFIG +=console' in die pro-Datei einfügen und schauen was für Debug-Messages dort ausgegeben werden.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung