Diferència entre revisions de la pàgina «PyQt: Imatges i sprites»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
Línia 22: Línia 22:
 
         qp.drawPixmap( posx, posy, self.dibuix )
 
         qp.drawPixmap( posx, posy, self.dibuix )
 
         #...
 
         #...
 +
</syntaxhighlight>
  
 
+
L'[http://qt-project.org/doc/qt-4.8/qpainter.html objecte QPainter] té diverses funcions '''drawPixmap''', la que veieu és la més senzilla. Si volem dibuixar només un fragment de la nostra imatge podem utilitzar la [http://qt-project.org/doc/qt-4.8/qpainter.html#drawPixmap-10 funció drawPixmap més complerta], segons aquesta doc (referència original de Qt per C++):
</syntaxhighlight>
+
void QPainter::drawPixmap ( int x, int y, int w, int h, const QPixmap & pixmap, int sx, int sy, int sw, int sh )
  
 
<br>
 
<br>

Revisió del 16:28, 19 gen 2015

Ampliem les funcions gràfiques de PyQt amb les llibreries per mostrar imatges.

Article principal i índex: Programació#UF5: POO. Llibreries de classes fonamentals


Pintar una imatge

Per pintar una imatge dintre d'un QWidget pots fer-ho d'aquesta manera amb l'objecte QPixmap.

class Pantalla(QWidget):
    #...
    def __init__(self):
        #...
        self.dibuix = QPixmap("dibuix.png") # l'arxiu d'imatge ha d'estar al mateix path que el .py
        #...
    def paintEvent(self,e):
        #...
        qp = QPainter(self):
        qp.start()
        #...
        qp.drawPixmap( posx, posy, self.dibuix )
        #...

L'objecte QPainter té diverses funcions drawPixmap, la que veieu és la més senzilla. Si volem dibuixar només un fragment de la nostra imatge podem utilitzar la funció drawPixmap més complerta, segons aquesta doc (referència original de Qt per C++):

void QPainter::drawPixmap ( int x, int y, int w, int h, const QPixmap & pixmap, int sx, int sy, int sw, int sh )


Sprites

Un sprite és una successió d'imatges que simulen una figura en moviment, donant animació aparent als objectes dibuixats.