Мне нужна небольшая помощь в изменении размера 2D-фигуры. После 4 часов поиска и тестирования разных методов, я полагаю, что я должен задать вопрос здесь.Qt Creator/C++ Resize Drawing
[Project]: Я пытаюсь рисовать и изменять размер и поворачивать фигуру с помощью ползунков. По какой-то причине он не хочет воздействовать на фигуру. Я хочу увеличить размер на 1 для каждого изменения значения ползунка и обратно.
Я не хочу использовать QPainter :: масштабирование или поворот.
[Код]:
#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
a = 250;
b = 150;
c = 200;
d = 150;
ui->setupUi(this);
connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),this,SLOT(change(int)));
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::paintEvent(QPaintEvent *e)
{
QPainter painter(this);
painter.fillRect(a,b,c,d, Qt::green);
}
void Dialog::change(int value1)
{
if(value1 > value2)
{
next = ++value1;
a = a;
b = b;
c = c + next;
d = d + next;
}
}
[Заголовок]:
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include <QtGui>
#include <QtCore>
namespace Ui {
class Dialog;
}
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = 0);
~Dialog();
public slots:
void change(int value1);
private:
Ui::Dialog *ui;
int value2, next;
protected:
void paintEvent(QPaintEvent *e);
int a,b,c,d;
};
, так что вы хотите масштабировать прямоугольник, который вы рисовали в paintEvent? – Iuliu
Попробуйте вызвать обновление или перерисовку в слот, он вызовет paintEvent и обновит rect. – Chernobyl
Да, Iuliu, вот что я пытаюсь сделать. –