Пихаешь их в gridlayout, указываешь фиксированные размеры, checkable по умолчанию и flat-стиль. И уже половина визуального поведения сделана
Соответственно, каждая ячейка поля - кнопка.
Просто с помощью, например, динамических пропертей, хранить, есть в этой ячейке фигура или нет