Класс создание круга на поле
Module::Module(int initialSize, int initialSpeed, int initialAngle,QWidget *field,QObject *parent) : QObject(parent)
{
size = initialSize;
speed = initialSpeed;
angle = initialAngle;
this->field = field;
}
void Module::startMoving() {
// Создаем круг
int x = (width - size) / 2; // Определяем координату X для размещения круга по центру поля
int y = (height - size) / 2; // Определяем координату Y для размещения круга по центру поля
circle = new QLabel(field);
circle->setGeometry(x, y, size, size);
circle->setStyleSheet("background-color: black; border-radius: " + QString::number(size / 2) + "px;");
}
Класс интерфейса
TBallWindow::TBallWindow(QWidget *parent)
: QWidget(parent)
{
field = new QWidget(this);
field->setFixedSize(800, 600);
field->setStyleSheet("background-color: yellow;");
// Создаем и настраиваем layout
mainLayout = new QVBoxLayout(this);
mainLayout->addWidget(field);
setLayout(mainLayout);
}
Не создается circle на field
Объявление окон
TMainWindow::TMainWindow(QWidget *parent)
: QWidget(parent)
{
pw = new TParamWindow();
ew = new TBallWindow();
module = new Module(pw->lineEdit1->text().toInt(), pw->lineEdit2->text().toInt(), pw->lineEdit3->text().toInt(),ew->field);
hl = new QHBoxLayout(this);
hl->addWidget(pw);
hl->addWidget(ew);
setWindowTitle("Имитатор устройства");
setMinimumSize(QSize(1200,600));
connect(pw->buttonStart, &QPushButton::clicked, module, &Module::startMoving);
}