Problem mit QtDesigner und ui_**.h
Verfasst: 7. Juni 2011 19:18
Hallo,
ich habe ein komisches Problem, welches ich nicht ganz verstehe, und mich gerade mittelschwer in den Wahnsinn treibt ....
Ok, ich habe ein Widget bestehend aus ein paar Pushbuttons in einem seperaten Projekt mit dem QtDesigner erstellt. Es heisst Transport.
Es besteht also aus Transport.ui, Transport.h, Transport.cpp und nach dem Builden noch aus ui_Transport.h. In meinem (Test-)Projekt passt dann auch alles was diese Dateistruktur angeht.
So, nun wirds komplizierter.
Das Widget sollte nun in ein grosses Ganzes, also eine Anwendung, integriert werden. Die vorher getesteten Widgets wie z.b. das Transport Widget wollte ich einfach ohne die .pro aus dem Testprojekt nur mit den o.g. Quellcode Dateien benutzen, also die Dateien einfach ins neue Projekt kopieren.
Da ich Wert auf Übersicht lege, baue ich mir eine Ordnerstruktur auf und teile Klassen so in "Packages" auf.
Meine Transport-Widget Quellcode Dateien landen bei mir in folgendem Ordner :
/ui/widgets/Transport
In meinem Mainwindow inkludiere ich dann einfach "ui/widgets/Transport/Tansport.h" und ich kann mein Widget verwenden. Passt.
Mir ist nun aber direkt beim BuildProzess der Anwendung aufgefallen, dass er für meine Widgets die ui_Transport.h nicht in meinem Packageordner erzeugt sondern im Rootverzeichnis der Applikation, also da wo die main.cpp ist.
Nun musste ich im Laufe der weiteren Entwicklung eine Änderung im TransportWidget vornehmen (Button Reihenfolge). Ich öffne also die .ui und nehme die Änderungen vor.
Nun ergibt sich das Problem (sorry für die lange Einleitung):
Da ich in meiner Transport.h natürlich die im package-pfad liegende ui_Transport.h inkludiere und nicht die aus dem root verzeichnis, wird eine alte ui_transport.h benutzt und die Änderungen sind nicht da.
In der root ui_transport.h sind die Änderungen natürlich drin.
Ich habe ungern die ui_*.h zu meinen ganzen widgets im root ordner rumfliegen...
Wie bekomm ich nun Qt oder QtCreator dazu, die ui_*.h für meinen Widgets nun im richtigen Ordner zu erzeugen ??
Danke für jegliche Hilfe,
Chris
ich habe ein komisches Problem, welches ich nicht ganz verstehe, und mich gerade mittelschwer in den Wahnsinn treibt ....
Ok, ich habe ein Widget bestehend aus ein paar Pushbuttons in einem seperaten Projekt mit dem QtDesigner erstellt. Es heisst Transport.
Es besteht also aus Transport.ui, Transport.h, Transport.cpp und nach dem Builden noch aus ui_Transport.h. In meinem (Test-)Projekt passt dann auch alles was diese Dateistruktur angeht.
So, nun wirds komplizierter.
Das Widget sollte nun in ein grosses Ganzes, also eine Anwendung, integriert werden. Die vorher getesteten Widgets wie z.b. das Transport Widget wollte ich einfach ohne die .pro aus dem Testprojekt nur mit den o.g. Quellcode Dateien benutzen, also die Dateien einfach ins neue Projekt kopieren.
Da ich Wert auf Übersicht lege, baue ich mir eine Ordnerstruktur auf und teile Klassen so in "Packages" auf.
Meine Transport-Widget Quellcode Dateien landen bei mir in folgendem Ordner :
/ui/widgets/Transport
In meinem Mainwindow inkludiere ich dann einfach "ui/widgets/Transport/Tansport.h" und ich kann mein Widget verwenden. Passt.
Mir ist nun aber direkt beim BuildProzess der Anwendung aufgefallen, dass er für meine Widgets die ui_Transport.h nicht in meinem Packageordner erzeugt sondern im Rootverzeichnis der Applikation, also da wo die main.cpp ist.
Nun musste ich im Laufe der weiteren Entwicklung eine Änderung im TransportWidget vornehmen (Button Reihenfolge). Ich öffne also die .ui und nehme die Änderungen vor.
Nun ergibt sich das Problem (sorry für die lange Einleitung):
Da ich in meiner Transport.h natürlich die im package-pfad liegende ui_Transport.h inkludiere und nicht die aus dem root verzeichnis, wird eine alte ui_transport.h benutzt und die Änderungen sind nicht da.
In der root ui_transport.h sind die Änderungen natürlich drin.
Ich habe ungern die ui_*.h zu meinen ganzen widgets im root ordner rumfliegen...
Wie bekomm ich nun Qt oder QtCreator dazu, die ui_*.h für meinen Widgets nun im richtigen Ordner zu erzeugen ??
Danke für jegliche Hilfe,
Chris