it-swarm.com.de

Qt Qrc-Ressourcendatei - Symbol kann nicht geladen werden

Ich habe ein Qt5-Desktop-Projekt und ich habe eine "resource.qrc" -Datei mit dem Qt Creator-Editor hinzugefügt, die die folgende Zeile in der .pro-Datei des Projekts erstellt hat:

RESOURCES = resource.qrc

Ich setzte ein leeres Präfix und eine PNG-Datei (14x14) ein und versuchte es so zu verwenden:

QPixmap pixmap = QPixmap ("://my_image.png");
ui->combobox->addItem(QIcon(pixmap), "itemname");

Das Problem ist: Das Symbol wird nicht angezeigt!

Die folgenden Arbeiten:

QPixmap pixmap(14,14);
pixmap.fill(QColor("red"));
ui->combobox->addItem(QIcon(pixmap), "itemname");

das Problem muss also im Ressourceneinbettungsprozess liegen. Ich habe festgestellt, dass das generierte "exe" keinen Ressourcenabschnitt enthält. Ich habe keine statischen externen Bibliotheken, daher glaube ich nicht, dass ich das brauche Q_INIT_RESOURCE (Ressourcen) -Makro (gibt mir undefiniertes externes)

Update: Ich poste hier meine qrc-Datei:

<RCC>
    <qresource prefix="/">
        <file>my_image.png</file>
    </qresource>
</RCC>

es ist ziemlich einfach und ich verstehe nicht, warum zur Laufzeit keine Icons angezeigt werden

12
Johnny Pauling

@Nikos C. gibt Ihnen nützliche Ratschläge, aber ich denke, Ihr Hauptproblem war, dass Sie nicht den richtigen Link zur Ressource verwendet haben. 

In Ihrem Code haben Sie:

QPixmap pixmap = QPixmap ("://my_image.png");

aber laut Dokumentation sollte es sein 

QPixmap pixmap = QPixmap (":/my_image.png");

oder Sie können Ihren Ressourcen Aliase geben und diese stattdessen verwenden.

11
troyane

Ich hatte kürzlich dasselbe Problem, bei dem ich die Ressourcenzeichenfolge falsch formatiert hatte. Wenn Sie eine aktuelle Version von Qt Creator verwenden, können Sie Ihre .qrc-Datei zur Bearbeitung öffnen und dann mit der rechten Maustaste auf die Ressource (in diesem Fall image) klicken, die Sie ansprechen möchten, und dann auf "Ressourcenpfad in Zwischenablage kopieren" klicken. Und voila, Sie haben jedes Mal die richtige Ressourcenzeichenfolge.

Qt Creator ist großartig.

Hoffe das hilft!

23
Terrabits

Das Problem wurde gelöst, indem Sie rcc.exe C:\root\QT> c:\root\QT\4.7.4\bin\rcc.exe Headless.qrc -o qtresources.cpp [ Kompilierung Sie sollten Bilder im Pfad haben. Erstellen Sie die Datei qtresources.cpp. Fügen Sie diese Datei in das Makefile oder das Projekt ein. Sie sollten das Bild sehen können.

0
Raj