49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
|
from __future__ import print_function
|
||
|
|
||
|
from PySide import QtGui, QtCore
|
||
|
|
||
|
class Player(QtGui.QWidget):
|
||
|
DEFAULT_PLAYERS = [
|
||
|
("Foo", QtGui.QColor(255, 0, 0)),
|
||
|
("Bar", QtGui.QColor(0, 255, 0)),
|
||
|
("Baz", QtGui.QColor(0, 0, 255)),
|
||
|
("Blubb", QtGui.QColor(0, 255, 255)),
|
||
|
("Murr", QtGui.QColor(255, 0, 255)),
|
||
|
]
|
||
|
|
||
|
def __init__(self, name, color, points=0, parent=None):
|
||
|
super(Player, self).__init__(parent)
|
||
|
self.name = name
|
||
|
self.color = color
|
||
|
self.points = points
|
||
|
|
||
|
self.setup_gui()
|
||
|
|
||
|
def setup_gui(self):
|
||
|
self.layout = QtGui.QVBoxLayout()
|
||
|
self.name_label = QtGui.QLabel(self.name)
|
||
|
self.name_label.setStyleSheet("QLabel { font-size: 40px; background-color: %s; color: white; }" % (self.color.name(),))
|
||
|
self.layout.addWidget(self.name_label)
|
||
|
|
||
|
self.points_label = QtGui.QLabel(str(self.points))
|
||
|
self.points_label.setStyleSheet("QLabel { font-size: 40px;}")
|
||
|
self.layout.addWidget(self.points_label, alignment=QtCore.Qt.AlignRight)
|
||
|
|
||
|
self.setLayout(self.layout)
|
||
|
|
||
|
def change_name(self, new_name):
|
||
|
self.name = new_name
|
||
|
self.name_label.set_text(new_name)
|
||
|
|
||
|
def add_points(self, amount):
|
||
|
self.points += amount
|
||
|
self.points_label.set_text(str(self.points))
|
||
|
|
||
|
@classmethod
|
||
|
def gen_player(clazz, num):
|
||
|
if num > len(clazz.DEFAULT_PLAYERS):
|
||
|
raise ValueError("You tried to generate too many players")
|
||
|
|
||
|
return clazz(*clazz.DEFAULT_PLAYERS[num-1])
|
||
|
|