Beispiel #1
0
class GameRoundPlot(QtGui.QWidget):
    def __init__(self,engine,parent=None):
        super(GameRoundPlot, self).__init__(parent)
        self.plotinited = False
        self.engine = engine
        self.parent = parent
        self.axiswidth = 0
        self.initUI()
        
    def initUI(self):
        self.widgetLayout = QtGui.QHBoxLayout(self)
        self.canvas = PlotView(PlayerColours,self)
        self.canvas.setBackground(self.palette().color(self.backgroundRole()))
        self.canvas.addLinePlot()
        self.widgetLayout.addWidget(self.canvas)
        self.plotinited = True
            
    def retranslateUI(self): self.retranslatePlot()
    
    def isPlotInited(self): return self.plotinited
        
    def updatePlot(self): pass
    
    def retranslatePlot(self): pass
    

        
Beispiel #2
0
 def initUI(self):
     self.widgetLayout = QHBoxLayout(self)
     self.canvas = PlotView(PlayerColours, self)
     self.canvas.setBackground(self.palette().color(self.backgroundRole()))
     self.canvas.addLinePlot()
     self.widgetLayout.addWidget(self.canvas)
     self.plotinited = True
Beispiel #3
0
    def initUI(self):
        super(Phase10RoundPlot, self).initUI()
        self.setStyleSheet("QLabel {font-size: 18px; }")
        QWidget().setLayout(self.layout())
        self.widgetLayout = QGridLayout()
        self.setLayout(self.widgetLayout)

        self.phasesLabel = QLabel("", self)
        self.widgetLayout.addWidget(self.phasesLabel, 0, 0)
        self.scoreLabel = QLabel("", self)
        self.widgetLayout.addWidget(self.scoreLabel, 0, 1)
        self.playersTitleLabel = QLabel("", self)
        self.widgetLayout.addWidget(self.playersTitleLabel, 0, 2)

        self.canvas = PlotView(PlayerColours, self)
        self.canvas.setBackground(self.palette().color(self.backgroundRole()))
        self.canvas.addLinePlot()
        self.widgetLayout.addWidget(self.canvas, 1, 0)
        self.scorecanvas = PlotView(PlayerColours, self)
        self.scorecanvas.setBackground(
            self.palette().color(self.backgroundRole()))
        self.scorecanvas.addLinePlot()
        self.widgetLayout.addWidget(self.scorecanvas, 1, 1)

        self.playersListLayout = QVBoxLayout()
        self.widgetLayout.addLayout(self.playersListLayout, 1, 2)

        self.playersListLayout.addStretch()
#         self.playersListLayout.addWidget(self.playersTitleLabel)

        for i, player in enumerate(self.engine.getListPlayers()):
            colour = PlayerColours[i]
            label = QLabel(player)
            css = ("QLabel {{ font-size: 28px; font-weight: bold; "
                   "color:rgb({},{},{});}}")
            label.setStyleSheet(css.format(colour.red(),
                                           colour.green(),
                                           colour.blue()))
            self.playersListLayout.addWidget(label)
#             self.playersListLayout.addStretch()

        self.playersListLayout.addStretch()

        self.retranslatePlot()
        self.updatePlot()
Beispiel #4
0
class Phase10RoundPlot(GameRoundPlot):
    
    def initUI(self):
        super(Phase10RoundPlot,self).initUI()
        self.setStyleSheet("QLabel {font-size: 18px; }")
        QtGui.QWidget().setLayout(self.layout())
        self.widgetLayout = QtGui.QGridLayout()
        self.setLayout(self.widgetLayout)

        self.phasesLabel = QtGui.QLabel("",self)
        self.widgetLayout.addWidget(self.phasesLabel,0,0)
        self.scoreLabel = QtGui.QLabel("",self)
        self.widgetLayout.addWidget(self.scoreLabel,0,1)
        self.playersTitleLabel = QtGui.QLabel("",self)
        self.widgetLayout.addWidget(self.playersTitleLabel,0,2)
        
        self.canvas = PlotView(PlayerColours,self)
        self.canvas.setBackground(self.palette().color(self.backgroundRole()))
        self.canvas.addLinePlot()
        self.widgetLayout.addWidget(self.canvas,1,0)
        self.scorecanvas = PlotView(PlayerColours,self)
        self.scorecanvas.setBackground(self.palette().color(self.backgroundRole()))
        self.scorecanvas.addLinePlot()
        self.widgetLayout.addWidget(self.scorecanvas,1,1)
        
        self.playersListLayout = QtGui.QVBoxLayout()
        self.widgetLayout.addLayout(self.playersListLayout,1,2)
        
        self.playersListLayout.addStretch()
#         self.playersListLayout.addWidget(self.playersTitleLabel)
        
        for i,player in enumerate(self.engine.getListPlayers()):
            colour = PlayerColours[i]
            label = QtGui.QLabel(player)
            label.setStyleSheet("QLabel {{ font-size: 28px; font-weight: bold; color:rgb({},{},{});}}".format(colour.red(),colour.green(),colour.blue()))
            self.playersListLayout.addWidget(label)
#             self.playersListLayout.addStretch()
        
        self.playersListLayout.addStretch()

        self.retranslatePlot()
        self.updatePlot()
    
        
    def retranslatePlot(self):
        super(Phase10RoundPlot,self).retranslatePlot()
        self.phasesLabel.setText(QtGui.QApplication.translate("Phase10RoundPlot",'Phases') )
        self.scoreLabel.setText(QtGui.QApplication.translate("Phase10RoundPlot",'Scores') )
#         self.playersTitleLabel.setText(QtGui.QApplication.translate("Phase10RoundPlot",'Players') )
        
    def updatePlot(self):
        super(Phase10RoundPlot,self).updatePlot()
        if not self.isPlotInited(): return
        scores = {}
        phases = {}
        for player in self.engine.getPlayers():
            scores[player] = [0]
            phases[player] = [0]
            
        for rnd in self.engine.getRounds():
            for player in self.engine.getPlayers():
                if player not in scores: scores[player] = [0]
                rndscore = rnd.getPlayerScore(player)
                if rndscore >= 0 :
                    accumscore = scores[player][-1] + rndscore
                    scores[player].append(accumscore)
                c_phase = rnd.getPlayerCompletedPhase(player)
                if c_phase > 0: phases[player].append(phases[player][-1]+1)
                else: phases[player].append(phases[player][-1])
                
        self.canvas.clearPlotContents()
        self.scorecanvas.clearPlotContents()
        
        for player in self.engine.getListPlayers():        
            self.canvas.addSeries(phases[player],player)
            self.scorecanvas.addSeries(scores[player],player)
            
        self.updatePlayerOrder()
            
    def updatePlayerOrder(self):
        trash = QtGui.QWidget()
        self.widgetLayout.removeItem(self.playersListLayout)
        trash.setLayout(self.playersListLayout)
        self.playersListLayout = QtGui.QVBoxLayout()
        self.widgetLayout.addLayout(self.playersListLayout,1,2)
         
        self.playersListLayout.addStretch()
         
        for i,player in enumerate(self.engine.getListPlayers()):
            colour = PlayerColours[i]
            label = QtGui.QLabel(player)
            label.setStyleSheet("QLabel {{ font-size: 28px; font-weight: bold; color:rgb({},{},{});}}".format(colour.red(),colour.green(),colour.blue()))
            self.playersListLayout.addWidget(label)
         
        self.playersListLayout.addStretch()