[gelöst] QT: Application Icon wird nicht angezeigt
-
Danke für deine Antwort, Mechanics,
leider kann ich weder das Application Symbol, das im Explorer angezeigt wird setzen, noch ein Icon für das MainWindow festlegen.
Mit freundlichen Grüßen,
Thronx
-
Ein Icon für das MainWindow setzt man mit setWindowIcon. Warum das Icon im Explorer nicht funktioniert, kiann ich dir leider nicht sagen. Sieht auf den ersten Blick ok aus was du gemacht hast, aber sowas mach ich auch nicht jeden Tag, müsste es mir genauer anschauen.
-
ist IDI_ICON1 denn 1
(resource.h)?
-
Hi, Softwaremaker,
ich habe jetzt folgendes ausprobiert, wobei aber nichts davon funktioniert hat.
Ich hab eigentlich nur den Wert von IDI_ICON1 geändert. (1 bzw. 102, wie es bei einem anderen Programm in VS C++ 2010 funktioniert hat)
Code der appicon.rc (Befindet sich unter Projekt/Andere Dateien)
#include "resource.h" IDI_ICON1 ICON "app.ico"
Siehe Code der Resource.h
bzw. (anderer Versuch)
#define IDI_ICON1 102 IDI_ICON1 ICON "app.ico"
bzw. (anderer Versuch)
#define IDI_ICON1 1 IDI_ICON1 ICON "app.ico"
Code der reource.h (Befindet sich bei den Header-Dateien)
#ifndef RESOURCE_H #define RESOURCE_H #define IDI_ICON1 1 #endif // RESOURCE_H
bzw. (anderer Versuch)
#ifndef RESOURCE_H #define RESOURCE_H #define IDI_ICON1 102 #endif // RESOURCE_H
Ich habe leider keine Ahnung, warum es einfach nicht funktionieren will.
Mit freundlichen Grüßen,
Thronx
-
lade deine exe mal in den ResHacker und prüfe ob dein Icon dort drinnen ist:
http://www.angusj.com/resourcehacker/
-
Hi,
@Softwaremaker:
der ResourceHacker zeigt auch nichts an, bis auf das: (Release-Version)Pfad: "24/1/1033"
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel> </requestedPrivileges> </security> </trustInfo> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"></assemblyIdentity> </dependentAssembly> </dependency> </assembly>
@Mechanics:
Wenn ich im Konstruktor meines MainWindows das hinzufüge funktioniert es auch nicht (Die Anwendung stürzt ab):setWindowIcon(QIcon ("app.ico") );
Mit freundlichen Grüßen,
Thronx
-
Thronx schrieb:
@Mechanics:
Wenn ich im Konstruktor meines MainWindows das hinzufüge funktioniert es auch nicht (Die Anwendung stürzt ab):setWindowIcon(QIcon ("app.ico") );
Da darf nichts abstürzen, du machst was falsch
Was heißt abstürzen? Debuggs durch, dann siehst du auch, was passiert.
"app.ico" ist kein guter Pfad. Wenn das Ding in einer Ressource liegt, brauchst du einen Doppelpunkt im Pfad, z.B. ":/app.ico". Der Pfad muss aber mit zu der qrc passen. Wenn das Icon im Dateisystem liegt, solltest du irgendwo den absoluten Pfad rausfinden, relative Pfade funktionieren nur ab und zu
-
Hi, Mechanics,
mein Konstruktor sieht so aus:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { parent->setWindowIcon( QIcon(":/Bilder/morse.ico") ); // FEHLER ui->setupUi(this); }
Vielleicht gibt es da einen Konflikt mit dem UI.
Jedenfalls zeigt der Debugger einen Fehler in der beschriebenen Zeile. (Welchen genau, weiß ich leider nicht)
Wenn ich ohne Debugger starte, passiert nichts und nach ca. 3-4s kommt die Meldung, dass das Programm abgestürzt ist.Wenn ich ein neues Projekt erstelle, kann ich dort ein MainWindow-Icon setzen(Im QTCreator bei Design).
Im alten Projekt aber nicht, obwohl die MainWindows die gleichen Eigenschaften und Einstllungen haben (Im Design Fenster).
Allerdings wird jetzt auch ein Icon in der Menüleiste angezeigt, was vorher auch nicht ging.
Aber auch im neuen Projekt kann ich kein Icon für den WindowsExplorer setzen.
Ich werde jetzt einfach mal alles ins neue Projekt kopieren und sehen ob das Erfolg bringt...
Mit freundlichen Grüßen,
Thronx
-
Ich habe den Fehler jetzt gefunden:
Das Icon wird bei mir nur in der Release Version angezeigt und das auch nur, wenn die alte kopilierte EXE-Datei zuvor gelöscht wurde.Danke für eure Mithilfe
Mit freundlichen Grüßen,
Thronx
-
Auch wenn dieser Thread uralt ist: gibt es eine Lösung das Icon auch in der Debug Version anzeigen zu lassen?
Bei mir will selbst das Dialogfeld Icon sich nicht setzen lassen wenn es der Debug Build ist, nur im Release Build funktioniert alles einwandfrei.