我有一个QGraphicsScene
我希望使用QSlider
进行缩放(进出),我有以下代码:
void fonction(){
Scene = new QGraphicsScene(this);
ui->graphicsView->setScene(Scene);
QPen Pen ;
QBrush Brush(Qt::red) ;
Pen.setWidth(5);
ellipse = Scene->addEllipse(2,2,30,30,Pen,Brush);
}
void HomePage::on_verticalSlider_valueChanged(int value)
{
float z ;
if(value==0 )
z=0.1;
else
z = value*0.01;
Scene->update();
ui->graphicsView->transform();
ui->graphicsView->scale(z,z);
}
QSlider
的间隔是[0.1 - > 1]
我的问题是缩小不起作用,为什么?
我该如何解决这个问题?
答案 0 :(得分:0)
你的问题是控制场景视图的矩阵不会重置滑块的每次更新,它只是一个运行的乘法。一个简单的方法是将当前值保存在HomePage的成员变量中(让我们称之为m_current_scale)并在执行另一个变换之前撤消缩放。
Configuration