Не рисуется один кастомный(QPainter) виджет над другим, почему? Как исправить?

Вот код кастомного виджета, в нем должен рисоваться еще один кастомный виджет, а конкретно SitAtTheTable d(p, this); Я как только уже не пробовал - не понимаю, почему он не отображается и я вижу только PokerTable . PokerTable.h

class PokerTable : public QWidget
{
    Q_OBJECT

public:
    PokerTable(QWidget *parent = nullptr);
    ~PokerTable();
private:
    
protected:
    void paintEvent(QPaintEvent *event) override;

};

PokerTable.cpp

void PokerTable::paintEvent(QPaintEvent* event)
{
    Q_UNUSED(event);
    QPainter painter(this);
    int side = qMin(width(), height());
    if((width() - height()) / 2 > 0)
        painter.setViewport((width() - height()) / 2, (height() - side) / 2, side, side);
    else
        painter.setViewport(0, (height() - side) / 2, side, side);
    painter.setWindow(-100, -100, 200, 200);


    QBrush brushPokerTable(QColor(8,115,83));
    QPen penEdgeOfTable(QColor(85,110,107), 10);
    QPen penPokerTableCardArea(QColor(146,170,70), 1);
    QPen penShadows(QColor(63, 63, 63, 200), 2);

    QRect table(QPoint(-100, -50), QPoint(100,50));
    QRect rectCardArea(QPoint(-80, -30), QPoint(80,30));
    QRect rectEdgeOfTable(QPoint(-100, -50), QPoint(100,50));
    QRect rectOfShadows(QPoint(-96, -45), QPoint(96,45));

    painter.setBrush(brushPokerTable);
    painter.drawRoundedRect(table,30,30); //TODO:Calculate Rounder

    painter.setPen(penEdgeOfTable);
    painter.drawRoundedRect(rectEdgeOfTable,30,30);

    painter.setPen(penShadows);
    painter.drawRoundedRect(rectOfShadows,30,30);

    painter.setPen(penPokerTableCardArea);
    painter.drawRoundedRect(rectCardArea,15,15);

    QPoint p(-50, 50);
    SitAtTheTable d(p, this);
    d.show();
}

SitAttheTable.h

class SitAtTheTable : public QWidget
{
    Q_OBJECT
public:
    SitAtTheTable(const QPoint& pos, QWidget *parent = nullptr);
    ~SitAtTheTable();
private:
    const QPoint* pos;
    QWidget *parent = nullptr;
protected:
    void paintEvent(QPaintEvent *event) override;

    void mousePressEvent(QMouseEvent *event) override;
    /*void mouseReleaseEvent(QMouseEvent *event) override;*/

};

SitAttheTable.cpp

#include "SitAtTheTable.h"


SitAtTheTable::SitAtTheTable(const QPoint &pos, QWidget *parent)
    : QWidget(parent),
      pos(&pos),
      parent(parent)
{


}

SitAtTheTable::~SitAtTheTable()
{

}

void SitAtTheTable::paintEvent(QPaintEvent* event)
{

    Q_UNUSED(event);
    QPainter painter(parent);
    /*int side = qMin(width(), height());
    if((width() - height()) / 2 > 0)
        painter.setViewport((width() - height()) / 2, (height() - side) / 2, side, side);
    else
        painter.setViewport(0, (height() - side) / 2, side, side);
    painter.setWindow(-100, -100, 200, 200);*/
    QRect sitButtonRect(*pos, QSize(40,20));
    painter.drawText(sitButtonRect, Qt::AlignCenter, QString("Place"));
    painter.fillRect(sitButtonRect,QColor(100,100,100,100));
    printf("Hello!!\n");
}

void SitAtTheTable::mousePressEvent(QMouseEvent *event)
{
    qDebug() << "Clicked";
}

main.cpp


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    PokerTable w;

    w.show();
    return a.exec();
}

Я много чего испробовал и рисуется только в одном единственном случае. На мой взгляд он отвратителен и я бы с удовольствием хотел бы спросить совета у комьюнити, как отрисовать мой кастомный виджет и почему он не рисуется в этом случае.


Ответы (0 шт):