У меня проблема с обновлением чертежа. У меня есть 2 файла: mainwindow.cpp и drawwidget.cpp. В mainwindow я загружаю файл с параметрами точки x, y. Когда я нажимаю кнопку, я выбираю несколько из них и передаю их в drawwidget, чтобы нарисовать эти точки.
Чтобы увидеть, как это будет работать, я временно нарисовал эллипс и умножил "p" на размер. Когда я нажимаю кнопку, «p» меняет значение (я напечатал его в QMessageBox и его другое значение), но эллипс остается того же размера. Что я делаю неправильно?
DrawWidget::DrawWidget(QWidget *parent) :
QWidget(parent)
{
p=30;
}
void DrawWidget::paintEvent(QPaintEvent *)
{
QStyleOption opt;
opt.init(this);
QPainter painter(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this);
painter.setRenderHint(QPainter::Antialiasing);
paint(painter);
}
void DrawWidget::paint(QPainter &painter)
{
painter.drawEllipse( QRect( 1*p-5, 5*p-5, 10, 10 ) );
}
void DrawWidget::handleData(sPunkt *&Tab_pkt)
{
p=Array[0].x;
update();
}
QRect::QRect(int, int, int, int)
— это ширина и высота, которые являются константами в вашем коде (10
). Так что размер не должен меняться. Вы только меняете позицию. - person thuga   schedule 16.05.2016p
в методеpaint
. Распечатать сообщениеQDebug
или что-то в этом роде. - person thuga   schedule 17.05.2016