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

De Cacauet Wiki
Salta a la navegació Salta a la cerca
(Es crea la pàgina amb « == Pintar una imatge == Per pintar una imatge dintre d'un QWidget pots fer-ho d'aquesta manera. <syntaxhighlight lang="python"> print "hola" </syntaxhighlight> <br...».)
 
 
(Hi ha 2 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
 +
Ampliem les funcions gràfiques de PyQt amb les llibreries per mostrar imatges.
  
 +
Article principal i índex: [[Programació#UF5: POO. Llibreries de classes fonamentals]]
 +
 +
<br>
  
 
== Pintar una imatge ==
 
== Pintar una imatge ==
Per pintar una imatge dintre d'un QWidget pots fer-ho d'aquesta manera.
+
Per pintar una imatge dintre d'un QWidget pots fer-ho d'aquesta manera amb l'[http://qt-project.org/doc/qt-4.8/qpixmap.html objecte QPixmap].
  
 
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
print "hola"
+
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 )
 +
        #...
 
</syntaxhighlight>
 
</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 i correspon a aquest prototip:
 +
void QPainter::drawPixmap ( int x, int y, const QPixmap & pixmap )
 +
 +
Si volem dibuixar només un fragment de la nostra imatge (que és el cas dels ''sprites'' 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++):
 +
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ó de 16:29, 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[modifica]

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 i correspon a aquest prototip:

void QPainter::drawPixmap ( int x, int y, const QPixmap & pixmap )

Si volem dibuixar només un fragment de la nostra imatge (que és el cas dels sprites 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[modifica]

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