[gelöst] Icon einkompelieren - wxWidgets
-
Hallo,
kurzer Hinweis: Newbee (nicht blutig, aber zartrosa)
Ich habe meine ersten Programme in wxWidgets geschrieben. Keine 0815-Programm zum Testen. Da klappt super und ich kann unter Linux SuSE 10.2 mit Hilfe von g++ auch schon schöne Binarys bauen die sich auch aufrufen lassen und das Programm startet.
Bei einem meiner unzähligen Tutorials ist auch beschrieben wie man das Icon bei Programm oben links setzt.
SetIcon(wxIcon(wxT("icon.png")));
Das klappt super, die Freude ist groß.
Jetzt mein Problem: Wenn ich mein Binary in ein anderes Verzeichnis kopiere und das Icon nicht mitkopiere, dann kann er das nicht einbinden und es erscheint wieder das "Stadard"-Icon oben links.
Ich habe versucht mich durch die unzähligen Schalter des g++ durchzuwühlen um eine Einstellung zu finden, die mir das Icon mit in meinen Quellcode baut, damit ich nur ein Binary habe. Besonderns, weil ich ja auch im Menü schöne Icons einsetzten möchte und meine Anwendung keine Zusatzdateien brauchen soll. (Ist ne Art kleine Datenbank mit mit meinem Server spricht, folglich USB-Stick tauglich -> 1 Datei kopieren und gut.)
Ich weiß, es ist wahrscheinlich eine supertolle Anfängerfrage, aber ich habe weder in wxWidgets, bei gcc(g++) noch bei google etwas gefunden was mir weiter hilft.
Ich hoffe ihr könnt das.(Eine Lösung die später auch auf Windows klappt wäre natürlich der absoluter Wahnsinn)
Danke,
Stefan
-
Korrigiert mich bitte einer, wenn ich falsch liege.
Das ELF-Dateiformat, wie es bei Unix-artigen Systemen verwendet wird, enthält im Gegensatz zum Beispiel zum PE-Format auf Windows keine Sektionen, um Nicht-Programmdaten zu speichern.
Unter Windows kann man Ressourcen verwenden, um so gut wie alles in einer Datei zu speichern, bei Linux könntest Du aber höchstens dein Icon irgendwie als riesiges Byte-Array ablegen. Dort müsstest Du dich dann aber auch selbst darum kümmern, aus diesem BLOB etwas Verwertbares zu machen.
Falls ich falsch liege und es doch sowas gibt, würde mich das aber auch interessieren!
-
Konvertiere die Icons in's XPM Format (z.B. mit GIMP).
Die kannst du dann einfach per
#include "MeinIcon.xpm"
in deinen Quellcode includen.
In wx dann
wxIcon(MeinIcon_xpm);
-
XPM ist super. Habs mir mal grob durchgelesen. Das geht auch unter Windows. Jetzt kommen die Tests. Aber eigentlich schade das man unter Linux so was wie Ressourcen nicht hat.
Danke schön,
Stefan
-
XPM ist ganz gut für Icons, jedoch hat ein XPM nicht alles, was einem PNG oder JPG bieten.
Daher würde ich evtl. das in ein Binär format in die Exepacken, gibt ein extra Tool dafür.
http://wxforum.shadonet.com/viewtopic.php?t=214