[gelöst] QPixmap wird nicht immer dargestellt

Alles rund um die Programmierung mit Qt
Antworten
boer
Beiträge: 9
Registriert: 11. November 2007 14:20

[gelöst] QPixmap wird nicht immer dargestellt

Beitrag von boer »

Hallo zusammen,

Ich habe in meinem Programm ein Bild in jpg-Format als Hintergrund. Wenn ich das Programm über die Shell starte, wird das Bild korrekt dargestellt, wenn ich jedoch das Programm über die graphische Oberfläche (Konqueror) starte, wird das Hintergrundbild nicht angezeigt.

Mein System: SuSe Linux 10.1, Qt 4.2

Der Hintergrund wird folgendermaßen erstellt:

Code: Alles auswählen

QGraphWidget::GraphWidget(QWidget *startMenue)
{
  // ...

  this->setBackgroundBrush(QPixmap("hintergrund.jpg"));

  // ...
}
Hatte jemand von euch schon mal dieses Problem und kann mir hier weiterhelfen bzw. kann mir sagen, wo ich mit der Fehlersuche ansetzen könnte? Ich bekomme auch keine Fehlermeldungen.

Danke!
Zuletzt geändert von boer am 27. November 2007 15:57, insgesamt 1-mal geändert.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Pack das Bild in die Resource oder nimm den absoluten Pfad zum Bild, wobei Du dabei den Pfad deiner App mit qApp->applicationDirPath() ermittelst.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
boer
Beiträge: 9
Registriert: 11. November 2007 14:20

Beitrag von boer »

Danke macman!

Ich hab jetzt auf die Schnelle das ganze über applicationDirPath() ausprobiert, und damit funktionierts. Ich denke dein Tipp mit dem Resource-File ist auch eine gute Idee, werd das noch ausprobieren.

Vollständigkeitshalber hier mein modifizierte Codeausschnitt:

Code: Alles auswählen

QGraphWidget::GraphWidget(QWidget *startMenue)
{
  // ...

  QString ImagePath = qApp->applicationDirPath();
  ImagePath += "/hintergrund.jpg";
  this->setBackgroundBrush(QPixmap(ImagePath));

  // ...
} 
Danke!
Antworten