Seite 1 von 1

QTdesigner -> QIcon -> Pfade inkorrekt?

Verfasst: 19. Juni 2006 00:04
von Mati
Hallo,

ich habe mittels QTDesigner ein Fenster gebastelt und in mein Projekt eingebunden. Passt alles und läuft auch. In der Toolbar und in der Menubar habe ich Icons platziert als QActions natürlich. Nun ist es so dass in dem Projekt unter kdevelop die Icons nicht sichtbar sind.
Der Grund dafür ist: In der von qmake erstellten ui_*.h datei die aus der *.ui datei erzeugt wird sind die Pfade zu den Icons die aus einer Q_INIT_RESOURCE Datei ausgelesen werden NICHT mit ":/..." angegeben also ohne den Doppelpunkt wie er nötig wäre und ohne das slash!
Warum?
Auch wenn in dieser Datei (ui_*.h) die Pfade manuell mit dem :/
hinzufüge also bearbeite passiert nichts! (Außerdem würde das bis zum nächsten erstellen eh wieder weg sein was also nichts bringen würde).

Ich habe das problem dadurch gelöst dass ich in der Klasse die diese Base-class durch das setupUI erstellt zusätzlich nochmal actionSave->setIcon(":/...");
eingetragen habe für jedes Icon, damit der Pfad hier korrekt ausgelesen wird.
Habe ich irgendwo was falsch gemacht im Designer oder warum klappt das nicht?

Danke euch für eure Hilfe!

Verfasst: 19. Juni 2006 11:30
von BartSimpson
Das liegt weniger am uic. Sondern ehr am Designer. Der hat leider so seine liebe Not mit Resurcen. Denn wenn du z.b. mit alias arbeitst, geht es auch grünlich schief. Da hilft es denn nur 2 mal das Programm übersetzen zu lassen. Und vor dem 2. lauf sed auf die ui.h'er loszulassen. Das soll aber erst in Qt 4.2 behoben werden.

Verfasst: 19. Juni 2006 21:50
von Mati
Danke für die Antwort...
könntest du das mit dem 2 mal laufen lassen vieleicht nochmal anders erklären?
Also ich erstelle die form mit dem designer der NICHT in kdevelop integriert ist und kopiere dann einfach die form ins projektverzeichnis über die existierende datei.

Danke für die Geduld.

Verfasst: 19. Juni 2006 22:08
von BartSimpson
Das 2 mal laufen lassen ist vön nöten, da beim 1. druchlauf erst die ui.h erstellt werden. Die müssen denn per sed geändert werden. Dann kommt der 2. compilerlauf, wo die geänderten ui.h benutzt werden. Dann sind deine Icons da. Das muss denn jedesmal wiederholt werden, wenn du das Designerformula änders.