Added victory window

This commit is contained in:
Sebastian Lohff 2013-11-23 17:51:52 +01:00
parent 2032b8eb1a
commit 113a0b6c4a
2 changed files with 35 additions and 1 deletions

10
game.py
View File

@ -3,7 +3,7 @@ from __future__ import print_function
from PySide import QtCore, QtGui
from player import Player
from windows import QuestionWindow, EditAnswersWindow, PlayerStartWindow
from windows import QuestionWindow, EditAnswersWindow, PlayerStartWindow, VictoryWindow
from gamestate import QuestionAnswers
class SeopardyGame(QtGui.QWidget):
@ -93,6 +93,8 @@ class SeopardyGame(QtGui.QWidget):
self._inOtherWindow = True
x.exec_()
self._inOtherWindow = False
elif e.key() == QtCore.Qt.Key_V:
self.show_victory_window()
elif e.key() == QtCore.Qt.Key_E:
if self._inOtherWindow:
return
@ -134,6 +136,12 @@ class SeopardyGame(QtGui.QWidget):
self.gamestate.set_answers(section, number, newAnswers)
self._restyle_button(section, number, newAnswers)
def show_victory_window(self):
self._inOtherWindow = True
victoryWindow = VictoryWindow(self.players, self)
victoryWindow.exec_()
self._inOtherWindow = False
def go_to_question(self, section, number):
if self._inOtherWindow:
return

View File

@ -338,3 +338,29 @@ class PlayerStartWindow(QtGui.QDialog):
self.playerGrid.addWidget(edit, row, 1)
class VictoryWindow(QtGui.QDialog):
def __init__(self, players, parent):
super(VictoryWindow, self).__init__(parent)
self._players = players
self._parent = parent
self._setupGui()
def _setupGui(self):
self.layout = QtGui.QVBoxLayout()
self.playerGrid = QtGui.QGridLayout()
winPlayers = sorted(self._players, key=lambda p: p.points, reverse=True)
for i, player in enumerate(winPlayers):
label = QtGui.QLabel(player.name, self)
fsize = 60 if i == 0 else 25
label.setStyleSheet("QLabel { font-size: %dpx; background-color: %s; color: white; }" % (fsize, player.color.name(),))
self.playerGrid.addWidget(label, i, 0)
points = QtGui.QLabel(str(player.points), self)
points.setStyleSheet("QLabel { font-size: %dpx; }" % (fsize,))
self.playerGrid.addWidget(points, i, 1, alignment=QtCore.Qt.AlignRight)
self.layout.addLayout(self.playerGrid)
self.setLayout(self.layout)