def __init__(self):
        super(MainWindow, self).__init__()
        # Variables:
        self.game = Game.TicTacToe(Players.HumanPlayer(), Players.QPlayer())
        self.game.returnMoveToGUI = self.drawMoveOnBoard
        self.game.signalGUItoReset = self.informUserGameEnded

        # Qt window
        self.setWindowTitle("Tic Tac Toe Game")
        self.buttongrid = QtWidgets.QWidget(self)
        self.setCentralWidget(self.buttongrid)
        self.frame = QtWidgets.QFrame(self.buttongrid)
        self.frame.setGeometry(QtCore.QRect(0, 0, 3*buttonWidth, int(3.5*buttonWidth)))
        self.frame.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.frame.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame.setLineWidth(0)
        self.grid = QtWidgets.QGridLayout(self.frame)

        # Start a new game
        self.newGameButton = QtWidgets.QPushButton("New Game")
        self.newGameButton.setMinimumSize(QtCore.QSize(buttonWidth, 8))
        self.newGameButton.clicked.connect(self.reset)
        self.grid.addWidget(self.newGameButton, 0, 0)

        # Find all player classes:
        playerClasses = [x for x in dir(Players) if isclass(getattr(Players, x)) and 'Player' in x and 'Basic' not in x and 'Brain' not in x]
        self.choosePlayerComboBox = QtWidgets.QComboBox()
        for player in playerClasses:
            self.choosePlayerComboBox.addItem(player)
            self.choosePlayerComboBox.setMinimumSize(QtCore.QSize(buttonWidth, 8))
        self.choosePlayerComboBox.setCurrentIndex(0)
        self.choosePlayerComboBox.activated.connect(self.loadNewPlayer)
        self.grid.addWidget(self.choosePlayerComboBox, 0, 1)

        # Add game buttons
        for i in range(0,self.game._rows):
            for j in range(0, self.game._cols):
                newButton = TicTacToeButton((i,j), self.game.gameIsBusy, self.game.play, self.game.humanPlayerMoved)
                newButton.setFont(QtGui.QFont('Helvetica', 60))
                self.grid.addWidget(newButton, i+1, j)
        self.setGeometry(300, 300, 3*buttonWidth + 5, 3*buttonHeight + 60)