Hi,
Du kannst keine Felder des GridLayouts unterschiedlich färben, solange du noch nichts in diese "Layoutfelder" rein gelegt hast.
Du kannst in Qt so ziemlich alles in ein Layout legen, solange es nur von QWidget abgeleitet ist (und das ist eigentlich jedes GUI-Element).
Ohne zu wissen, wie du das Spiel geplant hast, gehe ich mal davon aus, dass du die einzelnen Felder nach jedem "Spielzug" immer wieder neuzeichnen/aktualisieren willst. Du könntest deine eigene "Spielfeldklasse" von QWidget ableiten, und die Funktion paintEvent() überladen. In der Funktion könntest du dann beliebig "rumzeichnen".
auch das geht, wenn du willst dass die Felder auf Knopfdruck reagieren. Dieses Verhalten könntest du aber auch bei simplen QWidgets erreichen, indem du die Funktion mousePressEvent() in deiner Widget-Klasse neu implementierst.