def initUI(self): # inicialitzem aqui si tenim objectes interns self.pilo=Pilota() self.raqueta_1=Raqueta() pal = self.palette() pal.setColor(self.backgroundRole(), QtGui.QColor( 0, 0, 0 )) self.setPalette(pal) self.setAutoFillBackground(True) self.timer=QtCore.QTimer(self) self.timer.setInterval(20) self.timer.timeout.connect(self.repaint)
class Pantalla(QtGui.QWidget): posx = 0 posy = 0 radx = 5 rady = 5 temps = 0 pilo=0 #width = baseSize().width() + i * sizeIncrement().width(); def __init__(self): # ULL: cridar el constructor de la classe base és IMPRESCINDIBLE # (si sobreescrivim el constructor __init__, si no, no cal) super(QtGui.QWidget,self).__init__() self.initUI() def initUI(self): # inicialitzem aqui si tenim objectes interns self.pilo=Pilota() self.raqueta_1=Raqueta() pal = self.palette() pal.setColor(self.backgroundRole(), QtGui.QColor( 0, 0, 0 )) self.setPalette(pal) self.setAutoFillBackground(True) self.timer=QtCore.QTimer(self) self.timer.setInterval(20) self.timer.timeout.connect(self.repaint) # la funció paintEvent es crida cada cop que es pinta la pantalla # no cal cap connect(), ja ve connectada per la QApplication def paintEvent(self,e): # podriem liar-nos a pintar aquí mateix, o examinar l'event "e" # anem al lio... self.pinta() def pinta(self): qp = QtGui.QPainter() qp.begin(self) #primer actualitzem la posicio de la pilota self.pilo.actualitza_pos(self.width(),self.height()) #self.raqueta_1.detecta_colisions(self.pilo.posx,self.pilo.posy) self.detecta_colisions() self.pilo.pinta(qp) self.raqueta_1.pinta(qp) #i despres pintem la pilota qp.end() def detecta_colisions(self): col=self.raqueta_1.contains(self.pilo.posx,self.pilo.posy) if (col==True): #print "Xoque!!!! \n" self.pilo.rebota()