Form Änderungen unwirksam

Alles rund um die Programmierung mit Qt
Antworten
DimitriJunker
Beiträge: 47
Registriert: 8. September 2014 12:12

Form Änderungen unwirksam

Beitrag von DimitriJunker »

Hallo,
ich habe in Formulareditor Änderungen vorgenommen, bekomme beim debuggen aber die alte Version. Im UI steht das richtige. Ich habe auch "Alles neu erstellen" probiert, den mingw-Ordner gelöscht (also alle*.o,...)
Was kann das noch sein?
nebler
Beiträge: 51
Registriert: 9. Juli 2009 15:26

Re: Form Änderungen unwirksam

Beitrag von nebler »

Ich weiß gerade nicht ob es das 'Ui'ing' oder das 'Moc'ing' was dafür ausgeführt werden muss.
Unter Visual Studio gibt es dann noch ein Ordner 'Generated Files' ... whrsch. fehlt der Prozess wo er die UI File parst.

Evtl. kann er sie nicht generieren, da Du die Datei offen hast. Einfach mal alle File-Handles darauf schließen und nochmal generieren.
DimitriJunker
Beiträge: 47
Registriert: 8. September 2014 12:12

Re: Form Änderungen unwirksam

Beitrag von DimitriJunker »

Hallo,

ich habe mir mal die Compilerausgaben angesehen und dabei 2 evtl. interessante rote Zeilen gefunden:

Code: Alles auswählen

C:/Qt/Tools/mingw482_32/bin/mingw32-make -f Makefile.Release clean
mingw32-make[1]: Entering directory 'F:/osm/dyjtrackQt/build-dyjtrack-Desktop_Qt_5_3_MinGW_32bit-Debug'
del release\moc_dytwindow.cpp release\moc_cmakehtml.cpp release\moc_dialog.cpp release\moc_flugdialog.cpp release\moc_newairpdialog.cpp release\moc_gpxProper.cpp release\moc_cdyjtopt.cpp release\moc_cmakepix.cpp release\moc_cgpxproper.cpp
F:\osm\dyjtrackQt\build-dyjtrack-Desktop_Qt_5_3_MinGW_32bit-Debug\release\moc_dytwindow.cpp konnte nicht gefunden werden
del ui_dytwindow.h ui_flugdialog.h ui_newairpdialog.h ui_cdyjtopt.h ui_cmakepix.h ui_cmakehtml.h ui_cgpxproper.h
F:\osm\dyjtrackQt\build-dyjtrack-Desktop_Qt_5_3_MinGW_32bit-Debug\ui_dytwindow.h konnte nicht gefunden werden
gemeint sind die 2 Zeilen die mit F:\osm beginnen leider hier nicht rot.
der release Ordner aus der ersten roten Zeile ist vollkommen leer, ich habe bisher nur debug erzeugt, da kann er also wirklich nichts finden, nur warum sucht er da?

Das h-File aus der 2. Zeile ist vorhanden.
Es geht um Änderungen in dytwindow.ui, es könnte also mit diesen Zeilen zusammenhängen.

Gruß
Dimitri
DimitriJunker
Beiträge: 47
Registriert: 8. September 2014 12:12

Re: Form Änderungen unwirksam

Beitrag von DimitriJunker »

Nach vielem googeln und testen habe ich folgendes rausgefunden:

Zuerst mal meine Dateistruktur:
Die Quellfiles sind in: F:\osm\dyjtrackQt\dyjtrack
Außerdem gibt es denOrdner in dem die Compilerausgaben erzeugt werden:
F:\osm\dyjtrackQt\build-dyjtrack-Desktop_Qt_5_3_MinGW_32bit-Debug
Zu jeder Formularklasse gibt es 4 Dateien, z.b.:
cdyjtopt.cpp
cdyjtopt.h
cdyjtopt.ui
ui_cdyjtopt.h

Das Problem war das letzte File, es existierte in beiden Ordnern und wurde nicht angepaßt. Ich habe es dann im Quellordner gelöscht. Dann Funktionierte build aber nicht mehr, es gab eine Fehlermeldung aus und brach ab. Irgendwie kam ich auf die Idee "qmake ausführen" aus dem Erstellen Menü zu versuchen, dies funktionierte und danach funktionierte auch "Alles erstellen" Und die Änderungen sind im Programm angekommen. Ich verstehe es nicht, aber es scheint ein Lösungsweg zu sein.
Wann muß man "qmake ausführen" und was macht es was "Erstellen" nicht macht?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Form Änderungen unwirksam

Beitrag von Christian81 »

qmake erstellt aus der .pro-Datei die Makefiles, make erstellt mit Hilfe der Makefiles die Objekt-Dateien und Dlls/Executables. Also was komplett verschiedenes.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
DimitriJunker
Beiträge: 47
Registriert: 8. September 2014 12:12

Re: Form Änderungen unwirksam

Beitrag von DimitriJunker »

Aha, das erklärt natürlich einiges, ist meiner Meinung nach aber ungeschickt. Allgemein ist man bei QT ja gewohnt, das alles was sonst xyz oder cxyz heißt dort qxyz heißt, also erwartet man, daß qmake die qt Version von make ist, und somit das gleiche tuen sollte wie "erstellen". Vorallem finde ich es aber seltsam, daß "alles neu erstellen" dies nicht beinhaltet.
Aber zurück zum ursprünglichen Problem, kann es sein, daß der uic in das eine Verzeichnis schreibt, aber dann das aus dem anderen benutzt wird?
Danke
Dimitri
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Form Änderungen unwirksam

Beitrag von Christian81 »

Da Qt und Compiler zwei verschiedene Dinge sind hat es schon so seine Richtigkeit...

Zum Problem: Wenn die pro-Datei korrekt ist, sollte eigentlich alles korrekt neu erzeugt werden. Am besten mal alles komplett säubern so dass nur noch deine Dateien und die pro-Datei vorhanden sind und dann das Projekt neu im QtCreator öffnen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten