Seite 1 von 1

Ressource während Laufzeit hinzufügen

Verfasst: 10. Dezember 2011 13:30
von Gruwe
Hallo,

ich habe ein Programm mit einer QGraphicsScene/QGraphicsView in das ich ein QImage als Hintergrund-Bild einfügen möchte.
Wenn ich das Bild vor dem Compilen festlege, also in die Ressourcen-Datei aufnehmen kann, funktioniert dies einwandfrei.

Aber wie stelle ich es an, dass der Benutzer zur Laufzeit ein Bild auswählen kann und dies dann zu den Ressourcen hinzugefügt wird, damit ich
es als Hintergrund-Bild einfügen kann?

MfG und Danke :)

Re: Ressource während Laufzeit hinzufügen

Verfasst: 10. Dezember 2011 14:35
von franzf
Du kannst doch Bilder auch direkt von der Platte (also eine ganz normale Datei) laden. Resource-Dateien werden kompiliert und ins Binary eingefügt, da kann man nix während der Laufzeit des Programms ändern!

Re: Ressource während Laufzeit hinzufügen

Verfasst: 10. Dezember 2011 19:26
von Christian81
Ich gebe franzf fast recht - die Idee ist nicht wirklich sinnig - man braucht ein Bild nicht als Resource einzubinden nur weil man es darstellen will.
Allerdings kann man auch resourcen zur Laufzeit hinzufügen - sie müssen nicht unbedingt ins Binary einkompiliert werden - siehe http://doc.trolltech.com/4.7/qresource.html

Re: Ressource während Laufzeit hinzufügen

Verfasst: 12. Dezember 2011 14:35
von Gruwe
Hallo,

ok, das war mir nicht bewusst.
Denn bisher war es so, dass wenn ich irgendwelche Dateien (ob jpg-Bilder oder irgendwelche icons) ins Programm einbinden wollte, diese nur angezeigt wurden,
wenn ich sie in der Ressourcen-Datei hinterlegt hatte.

Wie geht es denn auch ohne?

Geht es nicht einfach so, dass ich z.B. ein QImage instanziiere und dort den absoluten Pfad der Datei, die ich anzeigen möchte, angebe?
Muss ich da sonst noch irgendwas tun?


MfG und Danke

Re: Ressource während Laufzeit hinzufügen

Verfasst: 12. Dezember 2011 17:16
von Christian81
Und was hindert Dich daran einfach den Pfad anzugeben und zu schauen was passiert? Wo steht das dies nicht gehen sollte?

Re: Ressource während Laufzeit hinzufügen

Verfasst: 12. Dezember 2011 18:11
von Gruwe
Die Tatsache, dass ich es schon des Öfteren probiert habe und es nie funktioniert hat!

Re: Ressource während Laufzeit hinzufügen

Verfasst: 12. Dezember 2011 18:54
von solarix
Also dieser "Arme-Leute-Viewer" funktioniert bei mir bestens:

Code: Alles auswählen

#include <QApplication>
#include <QFileDialog>
#include <QPixmap>
#include <QLabel>

int main(int argc, char *argv[])
{
  QApplication app(argc,argv);
  QString fileName = QFileDialog::getOpenFileName(NULL, "Open File",
                                                 "",
                                                 "Images (*.png *.xpm *.jpg)");

  if (fileName.length() > 0) {
    QLabel  l;
    QPixmap p(fileName);
    l.setPixmap(p);
    l.setGeometry(p.rect());
    l.setWindowTitle(fileName);
    l.show();
    return app.exec();
  }
  return 1;
}
:roll:

Da bräuchten wir halt ein Beispiel (wo es ausschliesslich mit Ressourcen funktioniert)...