tictactoe.h Example File
taskmenuextension/tictactoe.h 
          
            
            
#ifndef TICTACTOE_H
#define TICTACTOE_H
#include <QWidget>
class QRect;
class QSize;
class TicTacToe : public QWidget
{
    Q_OBJECT
    Q_PROPERTY(QString state READ state WRITE setState)
public:
    explicit TicTacToe(QWidget *parent = nullptr);
    QSize minimumSizeHint() const override;
    QSize sizeHint() const override;
    void setState(const QString &newState);
    QString state() const;
    void clearBoard();
protected:
    void mousePressEvent(QMouseEvent *event) override;
    void paintEvent(QPaintEvent *event) override;
private:
    enum : char { Empty = '-', Cross = 'X', Nought = 'O' };
    QRect cellRect(int row, int col) const;
    int cellWidth() const { return width() / 3; }
    int cellHeight() const { return height() / 3; }
    QString myState;
    int turnNumber = 0;
};
#endif