Ressource während Laufzeit hinzufügen

Alles rund um die Programmierung mit Qt
Antworten
Gruwe
Beiträge: 21
Registriert: 14. April 2011 18:15

Ressource während Laufzeit hinzufügen

Beitrag 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 :)
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Ressource während Laufzeit hinzufügen

Beitrag 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!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Ressource während Laufzeit hinzufügen

Beitrag 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
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Gruwe
Beiträge: 21
Registriert: 14. April 2011 18:15

Re: Ressource während Laufzeit hinzufügen

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Ressource während Laufzeit hinzufügen

Beitrag von Christian81 »

Und was hindert Dich daran einfach den Pfad anzugeben und zu schauen was passiert? Wo steht das dies nicht gehen sollte?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Gruwe
Beiträge: 21
Registriert: 14. April 2011 18:15

Re: Ressource während Laufzeit hinzufügen

Beitrag von Gruwe »

Die Tatsache, dass ich es schon des Öfteren probiert habe und es nie funktioniert hat!
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Re: Ressource während Laufzeit hinzufügen

Beitrag 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)...
Antworten