Diferència entre revisions de la pàgina «PyQt: Imatges i sprites»
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"> | ||
− | + | 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.