2D 그림 크기를 조정할 때 약간의 도움이 필요합니다. 여러 가지 방법으로 검색하고 시도한 후 4 시간이 지나면 여기에 질문을 게시해야한다고 생각했습니다.Qt Creator/C++ 도면 크기 조정
[프로젝트] : 슬라이더를 사용하여 그림을 그리고 크기를 조정하고 회전하려고합니다. 어떤 이유로 그것은 인물에게 행동하기를 원하지 않습니다. 슬라이더 값이 변경 될 때마다 크기를 1 씩 증가시키고 싶습니다.
QPainter :: scale 또는 rotate를 사용하고 싶지 않습니다.
[코드] :
#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;
}
}
[헤더] : 양식을 업데이트하고 페인트 이벤트를 트리거합니다 QWidget::update()를 호출
#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
예, 율리우, 그게 내가하려는거야. –