Seite 1 von 1

Form Änderungen unwirksam

Verfasst: 17. Oktober 2014 12:23
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?

Re: Form Änderungen unwirksam

Verfasst: 17. Oktober 2014 19:08
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.

Re: Form Änderungen unwirksam

Verfasst: 17. Oktober 2014 19:51
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

Re: Form Änderungen unwirksam

Verfasst: 19. Oktober 2014 02:38
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?

Re: Form Änderungen unwirksam

Verfasst: 19. Oktober 2014 09:44
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.

Re: Form Änderungen unwirksam

Verfasst: 19. Oktober 2014 12:00
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

Re: Form Änderungen unwirksam

Verfasst: 19. Oktober 2014 15:29
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.