Как установить кнопку на фиксированное расстояние от другого виджета?
Положение кнопки Place 1
Положение кнопки Place 2
PokerTable.cpp
PokerTable::PokerTable(QWidget *parent)
: QWidget(parent),
sitAtTheTableButton(new SitPlace(this))
{
}
void PokerTable::paintEvent(QPaintEvent* event)
{
Q_UNUSED(event);
QPainter painter(this);
int side = qMin(width(), height());
if((width() - height()) > 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);
}
PokerTable::~PokerTable()
{
}
SitAtPlace.cpp
#include "SitPlace.h"
#include <QMouseEvent>
SitPlace::SitPlace(QWidget *parent):QWidget(parent)
{
}
SitPlace::~SitPlace()
{
}
void SitPlace::paintEvent(QPaintEvent* event)
{
Q_UNUSED(event);
QPainter painter(this);
QObject* p = parent();
QWidget* parent = qobject_cast<QWidget*>(p);
QRect sitButtonRect(QPoint(10,10), QPoint(40,20));
painter.drawText(sitButtonRect, Qt::AlignCenter, QString("Place"));
painter.fillRect(sitButtonRect,QColor(100,100,100,100));
}
void SitPlace::mousePressEvent(QMouseEvent *event)
{
int x = event->x();
int y = event->y();
qDebug() << x << " " << y;
qDebug()<<"mousePressEvent\n";
}
В чем суть, я не понимаю, как мне сделать так, чтобы кнопка Place всегда находилась на равноудаленном расстоянии от края стола и в момент ресайза ресайзилась вместе со столом и всегда была на одном расстоянии от стола.

