Time for action – understanding the ChessView class
This is a chapter about doing graphics, so it is high time to focus on displaying our chess game. Our widget currently displays nothing, and our first task is going to be to show a chess board with rank and column symbols and fields colored appropriately.
By default, the widget does not have any proper size defined and we will have to fix that by implementing sizeHint()
. However, to be able to calculate the size, we have to decide how big a single field on the board is going to be. Therefore, in ChessView
, you should declare a property containing the size of the field, as shown:
Q_PROPERTY(QSize fieldSize READ fieldSize WRITE setFieldSize NOTIFY fieldSizeChanged)
To speed up coding, you can position the cursor over the property declaration, hit the Alt + Enter combination, and choose the Generate missing Q_PROPERTY members fixup from the pop-up menu. Creator will provide minor implementations for the getter and setter...