Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » KDevelop / Qt / wxWidget » QImage oder QPixmap

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.08.2004, 23:16 Uhr
~Igor
Gast


Hallo, ich möchte auf meiner Form ein Bild anzeigen, welches in einer bmp oder jpg-Datei gespeichert ist. Doch wie muss ich das machen? Mit QImage oder QPixmap oder noch was anderes? Ich habe es so versucht, leider ohne Erfolg:

Code:
QImage myImage->load("image.bmp");
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.08.2004, 00:37 Uhr
typecast
aka loddab
(Operator)


Lass mich raten: Das kompiliert noch nicht einmal.

Der ->Operator ist nur fuer Pointer definiert (und du hast hier keinen). Ausserdem bin ich mir noch nicht einmal sicher, ob man in der Zeile in der man ein Objekt deklariert schon auf eine Mehtode zugreifen kann. Wenn das geht, dann muesstest du mit dem .-Operator drauf zugreifen

Ein Image kannst du im uebrigen im Konstrukutor laden.


C++:
QImage myImage("image.bmp");
//oder
QImage* myImage = new QImage("image.bmp");



Aber das allein reicht nicht aus um ein Bild anzeigen zu koennen.

Du musst das Bild im paintEvent() des Widgets auf das du zeichnen willst extra zeichnen lassen.


C++:
myWidget::paintEvent(QPaintEvent* e) {
  bitBlt(this, xPos, yPos, &myImage); // fuer QImage myImage("image.bmp");
  // oder
  bitBlt(this, xPos, yPos, myImage); // fuer QImage* myImage = new QImage("image.bmp");
}



Dann kannst du dein Bild bewundern
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.08.2004, 07:18 Uhr
~Igor
Gast


Danke für die schnelle Antwort!
Was ist eigentlich der Unterschied zwischen

C++:
QImage myImage("image.bmp");
//oder
QImage* myImage = new QImage("image.bmp");


Was ist besser bzw was nimmt man wann wofür? Würde mich mal sehr interessieren.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.08.2004, 09:43 Uhr
typecast
aka loddab
(Operator)


Die zweite Zeile ist im Grunde genommen ein zweizeiler:


C++:
QImage* myImage; // Pointer auf die stelle an der das QImage nachher stehen wird
myImage = new QImage("image.bmp"); // erzeugung des eigentlichen Objekts



An deiner Stelle wuerde ich mir in einem C/C++ Buch da nochmal das Kapitel ueber Pointer durchlesen um das zu verstehen. Bei den E-Books haben wir z. B. ein C++ Buch. Schau doch da mal rein
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.08.2004, 10:55 Uhr
~Igor
Gast


Das mit dem Pointer versteh ich nicht so richtig.
Andere Frage: Wie kann ich abfragen, ob das Objekt "myImage" schon erstellt wurde oder nicht?

C++:
if ( ...myImage existiert nicht... ) { myImage = new QImage("image.bmp"); }
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.08.2004, 13:15 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



C++:
QImage* myImage; //das ist einfach nur eine variable die bereit ist einen wert aufzunehmen wo im speicher sich ein Objekt vom Typ QImage befindet, also halt ein pointer oder zeiger...




C++:
myImage = new QImage("image.bmp");
//das new erstellt dir ein Objekt vom Typ QImage mit dem entsprechenden konsturktor den du aufrufst... das new selber liefert die adresse im speicher zurück in den es da objekt gepackt hast... myImage zeigt jetzt also auf das objekt im speicher das du mit new angelegt hast



du kannst den zeiger auf NULL zeigen lassen... wenn du dann new erfolgreich aufrufst zeigt er nicht mehr auf Null sondern aufs Objekt im speicher...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ KDevelop / Qt / wxWidget ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: